From 8ffdde4873edfc7c7f25a89a6b55e898973adee9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:27:26 -0800 Subject: [PATCH 01/82] Bump the typespec group across 1 directory with 2 updates (#32051) Bumps the typespec group with 2 updates in the / directory: [@azure-tools/typespec-apiview](https://github.com/Azure/azure-sdk-tools) and [@typespec/rest](https://github.com/microsoft/typespec). Updates `@azure-tools/typespec-apiview` from 0.4.9 to 0.5.0 - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits/doc-warden_0.5.0) Updates `@typespec/rest` from 0.63.0 to 0.63.1 - [Release notes](https://github.com/microsoft/typespec/releases) - [Commits](https://github.com/microsoft/typespec/compare/typespec@0.63.0...@typespec/rest@0.63.1) --- updated-dependencies: - dependency-name: "@azure-tools/typespec-apiview" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typespec - dependency-name: "@typespec/rest" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typespec ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 18 ++++++++---------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index aad5134b06db..ab0a2680428b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "azure-rest-api-specs", "devDependencies": { - "@azure-tools/typespec-apiview": "0.4.9", + "@azure-tools/typespec-apiview": "0.5.0", "@azure-tools/typespec-autorest": "0.49.0", "@azure-tools/typespec-azure-core": "0.49.0", "@azure-tools/typespec-azure-portal-core": "0.49.0", @@ -21,7 +21,7 @@ "@typespec/openapi": "0.63.0", "@typespec/openapi3": "0.63.0", "@typespec/prettier-plugin-typespec": "0.63.0", - "@typespec/rest": "0.63.0", + "@typespec/rest": "0.63.1", "@typespec/streams": "0.63.0", "@typespec/versioning": "0.63.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", @@ -962,11 +962,10 @@ "link": true }, "node_modules/@azure-tools/typespec-apiview": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-apiview/-/typespec-apiview-0.4.9.tgz", - "integrity": "sha512-44KT4okSi5/tcCMWZqy9kOu+1I4BcB3Cyh8mu5XakVnAOHWjDPelbMm/4Vi/EpUKHSCTCYCRVno3j3Wz0M6Ppg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-apiview/-/typespec-apiview-0.5.0.tgz", + "integrity": "sha512-7Let8c9vAjvz0hKequXIeUp4IQfuWbKyH7mVBNfaPD0mNYfLixaosLJUeP0OZ0Zkl0Qljd425IQDTdlQyFsynw==", "dev": true, - "license": "MIT", "engines": { "node": ">=16.0.0" }, @@ -3811,11 +3810,10 @@ } }, "node_modules/@typespec/rest": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.63.0.tgz", - "integrity": "sha512-HftzMjSDHAYX+ILE9C6pFS4oAq7oBHMCtpA8QgSFPDF4V5a8l1k2K8c4x1B+7yl+GkREmIdtpc6S0xZm2G7hXg==", + "version": "0.63.1", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.63.1.tgz", + "integrity": "sha512-RQbTM+HGjCaNIWC0v72m5ulnuvLjuRigb7pH4QeRCvFtGPHos+WBv5SImkGrbYx3353OGR8dIi7lWe7aNwiDcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, diff --git a/package.json b/package.json index 72524f5b2af6..7e4bcd17deb5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azure-rest-api-specs", "devDependencies": { - "@azure-tools/typespec-apiview": "0.4.9", + "@azure-tools/typespec-apiview": "0.5.0", "@azure-tools/typespec-autorest": "0.49.0", "@azure-tools/typespec-azure-core": "0.49.0", "@azure-tools/typespec-azure-portal-core": "0.49.0", @@ -16,7 +16,7 @@ "@typespec/openapi": "0.63.0", "@typespec/openapi3": "0.63.0", "@typespec/prettier-plugin-typespec": "0.63.0", - "@typespec/rest": "0.63.0", + "@typespec/rest": "0.63.1", "@typespec/streams": "0.63.0", "@typespec/versioning": "0.63.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", From c29b9330313c91d43a75d9d08144c98071c904d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 16:32:00 -0800 Subject: [PATCH 02/82] Bump oav from 3.5.1 to 3.6.0 (#32052) Bumps [oav](https://github.com/azure/oav) from 3.5.1 to 3.6.0. - [Release notes](https://github.com/azure/oav/releases) - [Changelog](https://github.com/Azure/oav/blob/develop/ChangeLog.md) - [Commits](https://github.com/azure/oav/commits) --- updated-dependencies: - dependency-name: oav dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab0a2680428b..4b494848562c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7455,11 +7455,10 @@ } }, "node_modules/oav": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/oav/-/oav-3.5.1.tgz", - "integrity": "sha512-SWY+b9nk9fWoNsh8NvCP5XU/xZ2TffJ7Nna28GJxOsSgSUqPezZo6ehKoxVxBUUAYo4Sgz/phJBcjkNXYC2zpw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/oav/-/oav-3.6.0.tgz", + "integrity": "sha512-MB8/suEE9f1jibuiy35F5v6kHTZV9aDEjUH3W48UrnekDHIynANGyCxgEl2gGepb0NyuVz9nlDLzd3Q4fAsVVg==", "dev": true, - "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", "@autorest/schemas": "^1.3.4", @@ -7483,7 +7482,7 @@ "json-merge-patch": "^1.0.2", "json-pointer": "^0.6.2", "json-schema-traverse": "^0.4.1", - "jsonpath-plus": "^10.0.0", + "jsonpath-plus": "^10.2.0", "junit-report-builder": "^3.0.0", "lodash": "^4.17.21", "md5-file": "^5.0.0", From 18bcd0fcb4917f5cdc6c7c27141f52c2927330ff Mon Sep 17 00:00:00 2001 From: Himanshu Agarwal Date: Thu, 9 Jan 2025 10:09:12 +0530 Subject: [PATCH 03/82] [recoveryservices] Microsoft.RecoveryServices adding version 2024-09-30-preview (#32041) * Microsoft.RecoveryServices adding version 2024-09-30-preview (#30405) * Copy files from stable/2024-04-01 Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to preview/2024-09-30-preview Updated the API version from stable/2024-04-01 to preview/2024-09-30-preview. * Added tag for 2024-09-30-preview in readme file * resolve readme conflict (#31990) added latest stable folder Co-authored-by: Himanshu Agarwal --------- Co-authored-by: DevBaburaj Co-authored-by: justbelieve --- .../examples/Capabilities.json | 45 + .../CheckNameAvailability_Available.json | 19 + .../CheckNameAvailability_NotAvailable.json | 21 + .../examples/DeleteRegisteredIdentities.json | 12 + .../examples/DeleteVault.json | 18 + .../examples/DeletedVaults_Get.json | 22 + .../DeletedVaults_GetOperationStatus.json | 20 + .../DeletedVaults_ListBySubscriptionId.json | 35 + .../examples/DeletedVaults_Undelete.json | 36 + .../2024-09-30-preview/examples/GETVault.json | 83 + .../examples/GETVaultExtendedInfo.json | 22 + .../examples/GetOperationResult.json | 45 + .../examples/GetOperationStatus.json | 20 + .../examples/GetPrivateLinkResources.json | 36 + .../examples/ListBySubscriptionIds.json | 62 + .../examples/ListOperations.json | 463 +++ .../examples/ListPrivateLinkResources.json | 60 + .../examples/ListReplicationUsages.json | 34 + .../examples/ListResources.json | 63 + .../examples/ListUsages.json | 180 ++ .../examples/PATCHVault.json | 41 + .../examples/PATCHVault_WithCMK.json | 77 + .../examples/PATCHVault_WithCMK3.json | 73 + .../PATCHVault_WithMonitoringSettings.json | 65 + .../PATCHVault_WithRedundancySettings.json | 48 + .../PATCHVault_WithUserAssignedIdentity.json | 56 + .../2024-09-30-preview/examples/PUTVault.json | 72 + .../examples/PUTVaultCred.json | 41 + .../PUTVault_ResourceGuardEnabled.json | 114 + .../examples/PUTVault_WithCMK.json | 111 + .../PUTVault_WithMonitoringSettings.json | 105 + .../PUTVault_WithRedundancySettings.json | 84 + .../PUTVault_WithUserAssignedIdentity.json | 82 + .../examples/PatchVault_WithCMK2.json | 69 + .../examples/UpdateVaultExtendedInfo.json | 28 + .../registeredidentities.json | 376 +++ .../2024-09-30-preview/replicationusages.json | 208 ++ .../preview/2024-09-30-preview/vaults.json | 2629 +++++++++++++++++ .../2024-09-30-preview/vaultusages.json | 189 ++ .../resource-manager/readme.md | 14 +- 40 files changed, 5777 insertions(+), 1 deletion(-) create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/Capabilities.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_Available.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_NotAvailable.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteRegisteredIdentities.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteVault.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Get.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_GetOperationStatus.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_ListBySubscriptionId.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Undelete.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVault.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVaultExtendedInfo.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationResult.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationStatus.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetPrivateLinkResources.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListBySubscriptionIds.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListOperations.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListPrivateLinkResources.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListReplicationUsages.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListResources.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListUsages.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK3.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithMonitoringSettings.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithRedundancySettings.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithUserAssignedIdentity.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVaultCred.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_ResourceGuardEnabled.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithCMK.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithMonitoringSettings.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithRedundancySettings.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithUserAssignedIdentity.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PatchVault_WithCMK2.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/UpdateVaultExtendedInfo.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/registeredidentities.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/replicationusages.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaults.json create mode 100644 specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaultusages.json diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/Capabilities.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/Capabilities.json new file mode 100644 index 000000000000..71b7ab2f412f --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/Capabilities.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "api-version": "2024-09-30-preview", + "location": "westus", + "input": { + "type": "Microsoft.RecoveryServices/Vaults", + "properties": { + "dnsZones": [ + { + "subResource": "AzureBackup" + }, + { + "subResource": "AzureSiteRecovery" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.RecoveryServices/Vaults", + "properties": { + "dnsZones": [ + { + "subResource": "AzureBackup", + "requiredZoneNames": [ + "privatelink.wus.backup.windowsazure.com", + "privatelink.queue.core.windows.net", + "privatelink.blob.core.windows.net" + ] + }, + { + "subResource": "AzureSiteRecovery", + "requiredZoneNames": [ + "privatelink.siterecovery.windowsazure.com" + ] + } + ] + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_Available.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_Available.json new file mode 100644 index 000000000000..f6b288982572 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_Available.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "resGroupFoo", + "api-version": "2024-09-30-preview", + "location": "westus", + "input": { + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/Vaults" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_NotAvailable.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_NotAvailable.json new file mode 100644 index 000000000000..ef66802178bb --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/CheckNameAvailability_NotAvailable.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "resGroupBar", + "api-version": "2024-09-30-preview", + "location": "westus", + "input": { + "name": "swaggerExample2", + "type": "Microsoft.RecoveryServices/Vaults" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": false, + "reason": "AlreadyExists", + "message": "Resource already exists with the same name." + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteRegisteredIdentities.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteRegisteredIdentities.json new file mode 100644 index 000000000000..bb0e5a7ebbba --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteRegisteredIdentities.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "subscriptionId": "77777777-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "BCDRIbzRG", + "vaultName": "BCDRIbzVault", + "identityName": "dpmcontainer01", + "api-version": "2024-09-30-preview" + }, + "responses": { + "204": {} + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteVault.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteVault.json new file mode 100644 index 000000000000..08f6af10582d --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeleteVault.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview" + }, + "responses": { + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2024-09-30-preview", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2024-09-30-preview" + } + }, + "204": {} + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Get.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Get.json new file mode 100644 index 000000000000..ff5cf77b14aa --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Get.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "location": "westus", + "deletedVaultName": "swaggerExample", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample", + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/locations/deletedVaults", + "properties": { + "vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "vaultDeletionTime": "2024-09-20T09:49:46Z", + "purgeAt": "2024-10-20T09:49:46Z" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_GetOperationStatus.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_GetOperationStatus.json new file mode 100644 index 000000000000..5fc7aa5d479c --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_GetOperationStatus.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "location": "westus", + "deletedVaultName": "swaggerExample", + "operationId": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "name": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "status": "Succeeded", + "startTime": "2024-09-20T09:49:44.0478496Z", + "endTime": "2024-09-20T09:49:46Z" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_ListBySubscriptionId.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_ListBySubscriptionId.json new file mode 100644 index 000000000000..f99c155ad9fb --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_ListBySubscriptionId.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "location": "westus", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample1", + "name": "swaggerExample1", + "type": "Microsoft.RecoveryServices/locations/deletedVaults", + "properties": { + "vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample1", + "vaultDeletionTime": "2024-09-20T09:49:46Z", + "purgeAt": "2024-10-20T09:49:46Z" + } + }, + { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample2", + "name": "swaggerExample2", + "type": "Microsoft.RecoveryServices/locations/deletedVaults", + "properties": { + "vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample2", + "vaultDeletionTime": "2024-09-20T09:49:46Z", + "purgeAt": "2024-10-20T09:49:46Z" + } + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Undelete.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Undelete.json new file mode 100644 index 000000000000..bdd734d94208 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/DeletedVaults_Undelete.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "location": "westus", + "deletedVaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "undeleteInput": { + "properties": { + "recoveryResourceGroupId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample", + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/locations/deletedVaults", + "properties": { + "vaultId": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "vaultDeletionTime": "2024-09-20T09:49:46Z", + "purgeAt": "2024-10-20T09:49:46Z" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/a93f3cd5-9035-4b1e-a2c9-b16df6d5d34b?api-version=2024-09-30-preview" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.RecoveryServices/locations/westus/deletedVaults/swaggerExample/operations/a93f3cd5-9035-4b1e-a2c9-b16df6d5d34b?api-version=2024-09-30-preview", + "Retry-After": 30 + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVault.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVault.json new file mode 100644 index 000000000000..dbf4c1f7c613 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVault.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + }, + "provisioningState": "Succeeded", + "privateEndpointConnections": [ + { + "id": "/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/Vaults/pemsi-ecy-rsv2/privateEndpointConnections/pe114-pemsi-ecy-rsv.5944358949303501042.backup.75061caa-cba4-4849-8e09-608da4914aad", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.Network/privateEndpoints/pe114-pemsi-ecy-rsv" + }, + "groupIds": [ + "AzureBackup" + ], + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "None", + "actionsRequired": "None" + } + } + } + ], + "privateEndpointStateForBackup": "Enabled", + "privateEndpointStateForSiteRecovery": "None", + "securitySettings": { + "immutabilitySettings": { + "state": "Disabled" + }, + "softDeleteSettings": { + "softDeleteRetentionPeriodInDays": 14, + "softDeleteState": "Enabled", + "enhancedSecurityState": "Enabled" + }, + "multiUserAuthorization": "Disabled" + }, + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + }, + "secureScore": "None", + "bcdrSecurityLevel": "Poor" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVaultExtendedInfo.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVaultExtendedInfo.json new file mode 100644 index 000000000000..3ecc698dd1e1 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GETVaultExtendedInfo.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "name": "vaultExtendedInfo", + "etag": "f0d0260b-b92d-4458-ba0a-32c6cdabacb7", + "properties": { + "integrityKey": "J09wzS27fnJ+Wjot7xO5wA==", + "algorithm": "None" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample/extendedInformation/vaultExtendedInfo", + "type": "Microsoft.RecoveryServices/vaults/extendedInformation" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationResult.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationResult.json new file mode 100644 index 000000000000..90be7bd7a4e0 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationResult.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "operationId": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "api-version": "2024-09-30-preview" + }, + "responses": { + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + }, + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationStatus.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationStatus.json new file mode 100644 index 000000000000..940b0b2d72e3 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetOperationStatus.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "operationId": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "name": "YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==", + "status": "Succeeded", + "startTime": "2019-11-20T09:49:44.0478496Z", + "endTime": "2019-11-20T09:49:46Z" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetPrivateLinkResources.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetPrivateLinkResources.json new file mode 100644 index 000000000000..6e822e0c1b18 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/GetPrivateLinkResources.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "6c48fa17-39c7-45f1-90ac-47a587128ace", + "resourceGroupName": "petesting", + "vaultName": "pemsi-ecy-rsv2", + "api-version": "2024-09-30-preview", + "privateLinkResourceName": "backupResource" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/petesting/providers/Microsoft.RecoveryServices/Vaults/pemsi-ecy-rsv2/privateLinkResources/backupResource", + "name": "backupResource", + "type": "Microsoft.RecoveryServices/Vaults/privateLinkResources", + "properties": { + "groupId": "AzureBackup", + "requiredMembers": [ + "backup-fab1", + "backup-rec2", + "backup-prot1", + "backup-ecs1", + "backup-tel1", + "backup-wbcm1", + "backup-fc1", + "backup-id1" + ], + "requiredZoneNames": [ + "privatelink.ecy.backup.windowsazure.com", + "privatelink.queue.core.windows.net", + "privatelink.blob.core.windows.net" + ] + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListBySubscriptionIds.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListBySubscriptionIds.json new file mode 100644 index 000000000000..ee6fc8dcd145 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListBySubscriptionIds.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "westus", + "name": "patchtest", + "etag": "W/\"datetime'2017-11-22T11%3A05%3A19.907Z'\"", + "tags": { + "Love": "India" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/patchtest", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + { + "location": "westus", + "name": "today1", + "etag": "W/\"datetime'2017-11-21T10%3A52%3A19.633Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/today1", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListOperations.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListOperations.json new file mode 100644 index 000000000000..203333b98c8b --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListOperations.json @@ -0,0 +1,463 @@ +{ + "parameters": { + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "microsoft.recoveryservices/vaults/usages/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Vault Usage", + "operation": "Recovery Services Vault usage details.", + "description": "Returns usage details for a Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupUsageSummaries/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Usages Summaries", + "operation": "Recovery Services Protected Items and Protected Servers usage summaries details.", + "description": "Returns summaries for Protected Items and Protected Servers for a Recovery Services ." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/storageConfig/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config", + "operation": "Get Resource Storage Config", + "description": "Returns Storage Configuration for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/storageConfig/write", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config", + "operation": "Write Resource Storage Config", + "description": "Updates Storage Configuration for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Vault Config", + "operation": "Get Resource Config", + "description": "Returns Configuration for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/write", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Vault Config", + "operation": "Update Resource Config", + "description": "Updates Configuration for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/tokenInfo/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Token Info", + "operation": "Get Vault Token Info", + "description": "Returns token information for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupSecurityPIN/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "SecurityPINInfo", + "operation": "Get Security PIN Info", + "description": "Returns Security PIN Information for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupManagementMetaData/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Management Metadata", + "operation": "Get Backup Management Metadata", + "description": "Returns Backup Management Metadata for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupOperationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Results", + "operation": "Get Backup Operation Result", + "description": "Returns Backup Operation Result for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupOperations/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Status", + "operation": "Get Backup Operation Status", + "description": "Returns Backup Operation Status for Recovery Services Vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs", + "operation": "Get Jobs", + "description": "Returns all Job Objects" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/cancel/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs", + "operation": "Cancel Jobs", + "description": "Cancel the Job" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobsExport/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs", + "operation": "Export Jobs", + "description": "Export Jobs" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs Operation Results", + "operation": "Get Job Operation Result", + "description": "Returns the Result of Job Operation." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobsExport/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs Operation Results", + "operation": "Get Export Job Operation Result", + "description": "Returns the Result of Export Job Operation." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points", + "operation": "Get Recovery Points", + "description": "Get Recovery Points for Protected Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points", + "operation": "Restore Recovery Points", + "description": "Restore Recovery Points for Protected Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points", + "operation": "Provision Instant Item Recovery for Protected Item", + "description": "Provision Instant Item Recovery for Protected Item" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points", + "operation": "Revoke Instant Item Recovery for Protected Item", + "description": "Revoke Instant Item Recovery for Protected Item" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies", + "operation": "Get Protection Policy", + "description": "Returns all Protection Policies" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/write", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies", + "operation": "Create Protection Policy", + "description": "Creates Protection Policy" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/delete", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies", + "operation": "Delete Protection Policy", + "description": "Delete a Protection Policy" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Results", + "operation": "Get Policy Operation Results", + "description": "Get Results of Policy Operation." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/operationsStatus/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Status", + "operation": "Get Policy Operation Status", + "description": "Get Status of Policy Operation." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Items", + "operation": "Get Protected Item Details", + "description": "Returns object details of the Protected Item" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectedItems/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Items", + "operation": "Get All Protected Items", + "description": "Returns the list of all Protected Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/write", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Items", + "operation": "Create Backup Protected Item", + "description": "Create a backup Protected Item" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/delete", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Items", + "operation": "Delete Protected Items", + "description": "Deletes Protected Item" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Results", + "operation": "Get Protected Items Operation Results", + "description": "Gets Result of Operation Performed on Protected Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Status", + "operation": "Get Protected Items operation status", + "description": "Returns the status of Operation performed on Protected Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/backup/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protected Items", + "operation": "Backup Protected Item", + "description": "Performs Backup for Protected Item." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectableItems/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Protectable Items", + "operation": "Get Protectable Items", + "description": "Returns list of all Protectable Items." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/refreshContainers/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers", + "operation": "Refresh container", + "description": "Refreshes the container list" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers Operation Results", + "operation": "Get Operation Results", + "description": "Returns status of the operation" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectionContainers/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Protection Containers", + "operation": "Get Containers In Subscription", + "description": "Returns all containers belonging to the subscription" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers", + "operation": "Get Registered Container", + "description": "Returns all registered containers" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/operationResults/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Operation Results", + "operation": "Get Container Operation Results", + "description": "Gets result of Operation performed on Protection Container." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupEngines", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Engines", + "operation": "List of backup management servers.", + "description": "Returns all the backup management servers registered with vault." + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupStatus", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Backup Status", + "operation": "Check Backup Status for Vault", + "description": "Check Backup Status for Recovery Services Vaults" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPreValidateProtection", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "PreValidate Protection", + "operation": "Pre Validate Enable Protection", + "description": "" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupValidateFeatures", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Validate Features", + "operation": "Validate Features", + "description": "Validate Features" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/backupProtectionIntent/write", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protection Intent", + "operation": "Create backup Protection Intent", + "description": "Create a backup Protection Intent" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/{fabricName}/protectionContainers/{containerName}/items/read", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Workload Items", + "operation": "Get all items in a container", + "description": "Get all items in a container" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/inquire/action", + "display": { + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Inquire", + "operation": "Get all items in a container", + "description": "Get all items in a container" + }, + "origin": "user" + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListPrivateLinkResources.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListPrivateLinkResources.json new file mode 100644 index 000000000000..5f9dbdbc4f27 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListPrivateLinkResources.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "subscriptionId": "6c48fa17-39c7-45f1-90ac-47a587128ace", + "resourceGroupName": "petesting", + "vaultName": "pemsi-ecy-rsv2", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/petesting/providers/Microsoft.RecoveryServices/Vaults/pemsi-ecy-rsv2/privateLinkResources/backupResource", + "name": "backupResource", + "type": "Microsoft.RecoveryServices/Vaults/privateLinkResources", + "properties": { + "groupId": "AzureBackup", + "requiredMembers": [ + "backup-fab1", + "backup-rec2", + "backup-prot1", + "backup-ecs1", + "backup-tel1", + "backup-wbcm1", + "backup-fc1", + "backup-id1" + ], + "requiredZoneNames": [ + "privatelink.ecy.backup.windowsazure.com", + "privatelink.queue.core.windows.net", + "privatelink.blob.core.windows.net" + ] + } + }, + { + "id": "/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/gaallarg/providers/Microsoft.RecoveryServices/vaults/amchandnTest2702A/privateLinkResources/siteRecoveryResource", + "name": "siteRecoveryResource", + "type": "Microsoft.RecoveryServices/vaults/privateLinkResources", + "properties": { + "groupId": "AzureSiteRecovery", + "requiredMembers": [ + "siteRecovery-rcm1", + "siteRecovery-prot2", + "siteRecovery-tel1", + "siteRecovery-srs1", + "siteRecovery-prot2b", + "siteRecovery-id1" + ], + "requiredZoneNames": [ + "privatelink.ecy.siterecovery.windowsazure.com", + "privatelink.queue.core.windows.net", + "privatelink.blob.core.windows.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListReplicationUsages.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListReplicationUsages.json new file mode 100644 index 000000000000..09a2ed543fc4 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListReplicationUsages.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-09-30-preview", + "vaultName": "avrai7517Vault1", + "resourceGroupName": "avrai7517RG1", + "subscriptionId": "6808dbbc-98c7-431f-a1b1-9580902423b7" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "monitoringSummary": { + "unHealthyVmCount": 0, + "unHealthyProviderCount": 0, + "eventsCount": 0, + "deprecatedProviderCount": 0, + "supportedProviderCount": 0, + "unsupportedProviderCount": 0 + }, + "jobsSummary": { + "failedJobs": 0, + "suspendedJobs": 0, + "inProgressJobs": 0 + }, + "protectedItemCount": 2, + "registeredServersCount": 2, + "recoveryPlanCount": 1 + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListResources.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListResources.json new file mode 100644 index 000000000000..f0104cf1b6c1 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListResources.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "westus", + "name": "patchtest", + "etag": "W/\"datetime'2017-11-22T11%3A05%3A19.907Z'\"", + "tags": { + "Love": "India" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/patchtest", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + { + "location": "westus", + "name": "today1", + "etag": "W/\"datetime'2017-11-21T10%3A52%3A19.633Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "properties": { + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/today1", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListUsages.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListUsages.json new file mode 100644 index 000000000000..12565fca6a3e --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/ListUsages.json @@ -0,0 +1,180 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "unit": "Count", + "currentValue": 6, + "limit": -1, + "name": { + "value": "MABContainersCount", + "localizedValue": "Backup management servers" + } + }, + { + "unit": "Count", + "currentValue": 3, + "limit": -1, + "name": { + "value": "ProtectedItemCount", + "localizedValue": "Backup items/Azure virtual machine backup" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "ProtectedItemCriticalCount", + "localizedValue": "Critical" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "ProtectedItemWarningCount", + "localizedValue": "Warning" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "IaaSVMProtectedItemCount", + "localizedValue": "Azure Virtual Machines" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "IaaSVMProtectedItemCriticalCount", + "localizedValue": "Critical" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "IaaSVMProtectedItemWarningCount", + "localizedValue": "Warning" + } + }, + { + "unit": "Count", + "currentValue": 0, + "limit": -1, + "name": { + "value": "MABProtectedItemCount", + "localizedValue": "File-Folders" + } + }, + { + "unit": "Count", + "currentValue": 1, + "limit": -1, + "name": { + "value": "DPMProtectedItemCount", + "localizedValue": "DPM Protected Items Count" + } + }, + { + "unit": "Count", + "currentValue": 2, + "limit": -1, + "name": { + "value": "AzureBackupServerProtectedItemCount", + "localizedValue": "Azure Backup Server Protected Items Count" + } + }, + { + "unit": "Count", + "quotaPeriod": "P1D", + "currentValue": 0, + "limit": -1, + "name": { + "value": "InProgressJobsCount", + "localizedValue": "In progress" + } + }, + { + "unit": "Count", + "quotaPeriod": "P1D", + "currentValue": 0, + "limit": -1, + "name": { + "value": "FailedJobsCount", + "localizedValue": "Failed" + } + }, + { + "unit": "Bytes", + "currentValue": 117007930, + "limit": -1, + "name": { + "value": "GRSStorageUsage", + "localizedValue": "Cloud - GRS" + } + }, + { + "unit": "Bytes", + "currentValue": 0, + "limit": -1, + "name": { + "value": "LRSStorageUsage", + "localizedValue": "Cloud - LRS" + } + }, + { + "unit": "Count", + "currentValue": 5, + "limit": -1, + "name": { + "value": "ManagedInstances", + "localizedValue": "Protected Instances" + } + }, + { + "unit": "Bytes", + "currentValue": 0, + "limit": -1, + "name": { + "value": "GRSDedupStorageUsage", + "localizedValue": "Dedup - GRS" + } + }, + { + "unit": "Bytes", + "currentValue": 0, + "limit": -1, + "name": { + "value": "LRSDedupStorageUsage", + "localizedValue": "Dedup - LRS" + } + }, + { + "unit": "Bytes", + "currentValue": 117851553792, + "limit": -1, + "name": { + "value": "UsedDiskSize", + "localizedValue": "Backup Engines' Disk Used" + } + } + ] + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault.json new file mode 100644 index 000000000000..d1ba0b4c3fa4 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK.json new file mode 100644 index 000000000000..b4495e8040f0 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + }, + "properties": { + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi" + }, + "infrastructureEncryption": "Enabled" + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK3.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK3.json new file mode 100644 index 000000000000..99b7b9ca0013 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithCMK3.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + }, + "properties": { + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithMonitoringSettings.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithMonitoringSettings.json new file mode 100644 index 000000000000..1c71c33dfd1a --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithMonitoringSettings.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "properties": { + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2024-09-30-preview", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2024-09-30-preview" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithRedundancySettings.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithRedundancySettings.json new file mode 100644 index 000000000000..d56672b0754e --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithRedundancySettings.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithUserAssignedIdentity.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithUserAssignedIdentity.json new file mode 100644 index 000000000000..0816cb011131 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PATCHVault_WithUserAssignedIdentity.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault.json new file mode 100644 index 000000000000..061bcb4b3f13 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled" + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVaultCred.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVaultCred.json new file mode 100644 index 000000000000..0cef32ff7d29 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVaultCred.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "77777777-d41f-4550-9f70-7708a3a2283b", + "resourceGroupName": "BCDRIbzRG", + "vaultName": "BCDRIbzVault", + "certificateName": "BCDRIbzVault77777777-d41f-4550-9f70-7708a3a2283b-12-18-2017-vaultcredentials", + "api-version": "2024-09-30-preview", + "certificateRequest": { + "properties": { + "authType": "AAD", + "certificate": "TUlJRE5EQ0NBaHlnQXdJQkFnSVFDYUxFKzVTSlNVeWdncDM0VS9HUm9qQU5CZ2txaGtpRzl3MEJBUXNGQURBWE1SVXdFd1lEVlFRREV3eGhiV05vWVc1a2JpNWpiMjB3SGhjTk1qSXhNREkwTVRJd05qRTRXaGNOTWpNeE1ESTBNVEl4TmpFNFdqQVhNUlV3RXdZRFZRUURFd3hoYldOb1lXNWtiaTVqYjIwd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUN4cFpwS293a2p4VU9VWkpLT2JvdGdPWXkzaW9UVkxMMmZyaW9nZVN1Qm5IMWw3aVdQWW9kUHRoWS8yVmh6ZFVUckNXL25pNUh3b0JHYzZMMHF6UGlBWXpHek94RmpMQjZjdFNkbm9nL1A4eEV2OGE0cnJWZlBZdS9INStoTGx3N0RubXlTNWs4TU9sSVhUemVWNkxZV2I2RWlpTFppc0k1R3lLU1liemNaQmJKdnhLTVdGdHRCV08xZUwzUWNUejlpb1VGQzVnRlFKQzg3YXFkeDR1Wk9WYzRLM3Ixb09sTFBKdmRLN25YU3VWci9ZOC80ZHhCdDJZUTRia0hjM2EzcUNBbTZrV0QzamRiajhCZmhlWWNVNjFFZ3llVFV2MlI4dzRubWJqVXZxRW05cDZtTG4xMTdEWWpQTHNFODVTL0FpQmF0dkNhQ3hCZ0lxb1N1blBOUkFnTUJBQUdqZkRCNk1BNEdBMVVkRHdFQi93UUVBd0lGb0RBSkJnTlZIUk1FQWpBQU1CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFmQmdOVkhTTUVHREFXZ0JRR1NZcDJMUTJwOE5wMHUzRThJZDdRUjRTQXBqQWRCZ05WSFE0RUZnUVVCa21LZGkwTnFmRGFkTHR4UENIZTBFZUVnS1l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUp2ZG9yRmJ4cExZaUhYRHpnR001WmxMWTRDZE1LYW5BdzVDZDNFVnhDbkhtT05ISnpLRmpzdHZjdUN1TDZ2S1ptci9abm5ENXNLUnE0d0xnTXV6dlNXNGtQTXlWeENrYzdVYnNZSWJCSXNIUDl3cUNmcUY5aG5LSE9YZFJJV2tBVXhnbmYxSlpLZjR1NlpTSzZ3dExaME9VT0c5Mmd3SlB2eW5PVmJoeWpqczdQTVpONEw1djZyeHJkRWp0WG5sYzIvRDlnS0NOTFhFZHdRM0dzS05ZTGZvYy9DT3JmbEIrRHVPSThrVzM0WmxzYlFHelgyQ3ArWVVlSDNrQlBjY3RpUWNURHFQcW5YS0NNMTJ6MGZDTjVpNXRkRlUrM0VzemZBQkpiOEZpU2ZCWFF1UUZRRDNDTDkraVdjZXhrMmxQako2akZIbHZtak9XbTdjQllHZlc4ST0=" + } + } + }, + "responses": { + "200": { + "body": { + "name": "BCDRIbzVault77777777-d41f-4550-9f70-7708a3a2283b-12-18-2017-vaultcredentials", + "type": "Microsoft.RecoveryServices/vaults/certificates", + "id": "/Subscriptions/77777777-d41f-4550-9f70-7708a3a2283b/resourceGroups/BCDRIbzRG/providers/Microsoft.RecoveryServices/vaults/BCDRIbzVault/certificates/BCDRIbzVault77777777-d41f-4550-9f70-7708a3a2283b-12-18-2017-vaultcredentials", + "properties": { + "authType": "AzureActiveDirectory", + "certificate": "TUlJRE5EQ0NBaHlnQXdJQkFnSVFDYUxFKzVTSlNVeWdncDM0VS9HUm9qQU5CZ2txaGtpRzl3MEJBUXNGQURBWE1SVXdFd1lEVlFRREV3eGhiV05vWVc1a2JpNWpiMjB3SGhjTk1qSXhNREkwTVRJd05qRTRXaGNOTWpNeE1ESTBNVEl4TmpFNFdqQVhNUlV3RXdZRFZRUURFd3hoYldOb1lXNWtiaTVqYjIwd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUN4cFpwS293a2p4VU9VWkpLT2JvdGdPWXkzaW9UVkxMMmZyaW9nZVN1Qm5IMWw3aVdQWW9kUHRoWS8yVmh6ZFVUckNXL25pNUh3b0JHYzZMMHF6UGlBWXpHek94RmpMQjZjdFNkbm9nL1A4eEV2OGE0cnJWZlBZdS9INStoTGx3N0RubXlTNWs4TU9sSVhUemVWNkxZV2I2RWlpTFppc0k1R3lLU1liemNaQmJKdnhLTVdGdHRCV08xZUwzUWNUejlpb1VGQzVnRlFKQzg3YXFkeDR1Wk9WYzRLM3Ixb09sTFBKdmRLN25YU3VWci9ZOC80ZHhCdDJZUTRia0hjM2EzcUNBbTZrV0QzamRiajhCZmhlWWNVNjFFZ3llVFV2MlI4dzRubWJqVXZxRW05cDZtTG4xMTdEWWpQTHNFODVTL0FpQmF0dkNhQ3hCZ0lxb1N1blBOUkFnTUJBQUdqZkRCNk1BNEdBMVVkRHdFQi93UUVBd0lGb0RBSkJnTlZIUk1FQWpBQU1CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFmQmdOVkhTTUVHREFXZ0JRR1NZcDJMUTJwOE5wMHUzRThJZDdRUjRTQXBqQWRCZ05WSFE0RUZnUVVCa21LZGkwTnFmRGFkTHR4UENIZTBFZUVnS1l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUp2ZG9yRmJ4cExZaUhYRHpnR001WmxMWTRDZE1LYW5BdzVDZDNFVnhDbkhtT05ISnpLRmpzdHZjdUN1TDZ2S1ptci9abm5ENXNLUnE0d0xnTXV6dlNXNGtQTXlWeENrYzdVYnNZSWJCSXNIUDl3cUNmcUY5aG5LSE9YZFJJV2tBVXhnbmYxSlpLZjR1NlpTSzZ3dExaME9VT0c5Mmd3SlB2eW5PVmJoeWpqczdQTVpONEw1djZyeHJkRWp0WG5sYzIvRDlnS0NOTFhFZHdRM0dzS05ZTGZvYy9DT3JmbEIrRHVPSThrVzM0WmxzYlFHelgyQ3ArWVVlSDNrQlBjY3RpUWNURHFQcW5YS0NNMTJ6MGZDTjVpNXRkRlUrM0VzemZBQkpiOEZpU2ZCWFF1UUZRRDNDTDkraVdjZXhrMmxQako2akZIbHZtak9XbTdjQllHZlc4ST0=", + "resourceId": 8726350008099341699, + "aadAuthority": "https://login.windows.net", + "aadTenantId": "9b0c2069-2eba-489f-95f4-eca15cb602ab", + "servicePrincipalClientId": "4932d0bd-b5f9-4659-94a0-7ab02d918933", + "servicePrincipalObjectId": "2d60221e-cef5-4e13-ba66-b33701a533bb", + "azureManagementEndpointAudience": "https://ppe1-id1.wus.wabppe.obs-test.com/restapi/", + "subject": "CN=Windows Azure Tools", + "validFrom": "2017-12-18T14:47:53+05:30", + "validTo": "2017-12-23T14:57:53+05:30", + "thumbprint": "019FE9BAD18A5A09A5CA53B593AF66331F3054AF", + "friendlyName": "", + "issuer": "CN=Windows Azure Tools", + "aadAudience": "api://9b0c2069-2eba-489f-95f4-eca15cb602ab/RecoveryServiceVault/US/AADReregisterTest/8726350008099341699" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_ResourceGuardEnabled.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_ResourceGuardEnabled.json new file mode 100644 index 000000000000..aa76f944a32b --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_ResourceGuardEnabled.json @@ -0,0 +1,114 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi" + }, + "infrastructureEncryption": "Enabled" + }, + "resourceGuardOperationRequests": [ + "/subscriptions/38304e13-357e-405e-9e9a-220351dcce8c/resourcegroups/ankurResourceGuard1/providers/Microsoft.DataProtection/resourceGuards/ResourceGuard38-1/modifyEncryptionSettings/default" + ] + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Provisioning", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithCMK.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithCMK.json new file mode 100644 index 000000000000..d6bb608fd46f --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithCMK.json @@ -0,0 +1,111 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi" + }, + "infrastructureEncryption": "Enabled" + } + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Provisioning", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", + "useSystemAssignedIdentity": false + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithMonitoringSettings.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithMonitoringSettings.json new file mode 100644 index 000000000000..be39956ef716 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithMonitoringSettings.json @@ -0,0 +1,105 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled", + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + } + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "monitoringSettings": { + "azureMonitorAlertSettings": { + "alertsForAllJobFailures": "Enabled", + "alertsForAllReplicationIssues": "Enabled", + "alertsForAllFailoverIssues": "Disabled" + }, + "classicAlertSettings": { + "alertsForCriticalOperations": "Disabled", + "emailNotificationsForSiteRecovery": "Enabled" + } + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithRedundancySettings.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithRedundancySettings.json new file mode 100644 index 000000000000..796a6bdb0c90 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithRedundancySettings.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled", + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + } + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "tenantId": "d676e86e-2206-4a7c-999c-ece52c144b5b", + "principalId": "3137d6c7-5d6c-411c-b934-7a2a729ee247", + "type": "SystemAssigned" + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "redundancySettings": { + "standardTierStorageRedundancy": "GeoRedundant", + "crossRegionRestore": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "RS0", + "tier": "Standard" + } + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithUserAssignedIdentity.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithUserAssignedIdentity.json new file mode 100644 index 000000000000..4929f52aaff1 --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PUTVault_WithUserAssignedIdentity.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "properties": { + "publicNetworkAccess": "Enabled" + }, + "sku": { + "name": "Standard" + }, + "location": "West US", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "201": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "TestUpdatedKey": "TestUpdatedValue" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": {} + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Provisioning" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + }, + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PatchVault_WithCMK2.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PatchVault_WithCMK2.json new file mode 100644 index 000000000000..599f0de3c28d --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/PatchVault_WithCMK2.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "HelloWorld", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "vault": { + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "encryption": { + "kekIdentity": { + "useSystemAssignedIdentity": true + } + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "westus", + "name": "swaggerExample", + "etag": "W/\"datetime'2017-12-15T12%3A36%3A51.68Z'\"", + "tags": { + "PatchKey": "PatchKeyUpdated" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi": { + "clientId": "fbe75b66-01c5-4f87-a220-233af3270436", + "principalId": "075a0ca6-43f6-4434-9abf-c9b1b79f9219" + } + } + }, + "properties": { + "publicNetworkAccess": "Enabled", + "provisioningState": "Succeeded", + "encryption": { + "keyVaultProperties": { + "keyUri": "https://cmk2xkv.vault.azure.net/keys/Key1/0767b348bb1a4c07baa6c4ec0055d2b3" + }, + "kekIdentity": { + "useSystemAssignedIdentity": true + }, + "infrastructureEncryption": "Enabled" + } + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample", + "type": "Microsoft.RecoveryServices/vaults", + "sku": { + "name": "Standard" + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.RecoveryServices/vaults/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2015-03-15" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/UpdateVaultExtendedInfo.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/UpdateVaultExtendedInfo.json new file mode 100644 index 000000000000..3f5be12af8ab --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/examples/UpdateVaultExtendedInfo.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "77777777-b0c6-47a2-b37c-d8e65a629c18", + "resourceGroupName": "Default-RecoveryServices-ResourceGroup", + "vaultName": "swaggerExample", + "api-version": "2024-09-30-preview", + "resourceResourceExtendedInfoDetails": { + "properties": { + "integrityKey": "J99wzS27fmJ+Wjot7xO5wA==", + "algorithm": "None" + } + } + }, + "responses": { + "200": { + "body": { + "name": "vaultExtendedInfo", + "etag": "f0d0260b-b92d-4458-ba0a-32c6cdabacb7", + "properties": { + "integrityKey": "J99wzS27fmJ+Wjot7xO5wA==", + "algorithm": "None" + }, + "id": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/Default-RecoveryServices-ResourceGroup/providers/Microsoft.RecoveryServices/vaults/swaggerExample/extendedInformation/vaultExtendedInfo", + "type": "Microsoft.RecoveryServices/vaults/extendedInformation" + } + } + } +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/registeredidentities.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/registeredidentities.json new file mode 100644 index 000000000000..964b0813c1bd --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/registeredidentities.json @@ -0,0 +1,376 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-09-30-preview", + "title": "RecoveryServicesClient", + "x-ms-code-generation-settings": { + "internalConstructors": false + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/certificates/{certificateName}": { + "put": { + "tags": [ + "VaultCertificates" + ], + "description": "Uploads a certificate for a resource.", + "operationId": "VaultCertificates_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "certificateName", + "in": "path", + "description": "Certificate friendly name.", + "required": true, + "type": "string" + }, + { + "name": "certificateRequest", + "in": "body", + "description": "Input parameters for uploading the vault certificate.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultCertificateResponse" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Download vault credential file": { + "$ref": "./examples/PUTVaultCred.json" + } + } + } + }, + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/registeredIdentities/{identityName}": { + "delete": { + "tags": [ + "RegisteredIdentities" + ], + "description": "Unregisters the given container from your Recovery Services vault.", + "operationId": "RegisteredIdentities_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "identityName", + "in": "path", + "description": "Name of the protection container to unregister.", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "NoContent" + } + }, + "deprecated": false, + "x-ms-examples": { + "Delete registered Identity": { + "$ref": "./examples/DeleteRegisteredIdentities.json" + } + } + } + } + }, + "definitions": { + "CertificateRequest": { + "description": "Details of the certificate to be uploaded to the vault.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/RawCertificateData" + } + } + }, + "RawCertificateData": { + "description": "Raw certificate data.", + "type": "object", + "properties": { + "authType": { + "description": "Specifies the authentication type.", + "enum": [ + "Invalid", + "ACS", + "AAD", + "AccessControlService", + "AzureActiveDirectory" + ], + "type": "string", + "x-ms-enum": { + "name": "AuthType", + "modelAsString": true + } + }, + "certificate": { + "format": "byte", + "description": "The base64 encoded certificate raw data string", + "type": "string" + } + } + }, + "ResourceCertificateAndAadDetails": { + "description": "Certificate details representing the Vault credentials for AAD.", + "required": [ + "certificate", + "resourceId", + "aadAuthority", + "aadTenantId", + "servicePrincipalClientId", + "servicePrincipalObjectId", + "azureManagementEndpointAudience", + "subject", + "validFrom", + "validTo", + "thumbprint", + "friendlyName", + "issuer" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceCertificateDetails" + } + ], + "properties": { + "aadAuthority": { + "description": "AAD tenant authority.", + "type": "string" + }, + "aadTenantId": { + "description": "AAD tenant Id.", + "type": "string" + }, + "servicePrincipalClientId": { + "description": "AAD service principal clientId.", + "type": "string" + }, + "servicePrincipalObjectId": { + "description": "AAD service principal ObjectId.", + "type": "string" + }, + "azureManagementEndpointAudience": { + "description": "Azure Management Endpoint Audience.", + "type": "string" + }, + "serviceResourceId": { + "description": "Service Resource Id.", + "type": "string" + }, + "aadAudience": { + "description": "AAD audience for the resource", + "type": "string" + } + }, + "x-ms-discriminator-value": "AzureActiveDirectory" + }, + "ResourceCertificateAndAcsDetails": { + "description": "Certificate details representing the Vault credentials for ACS.", + "required": [ + "certificate", + "resourceId", + "globalAcsNamespace", + "globalAcsHostName", + "globalAcsRPRealm", + "subject", + "validFrom", + "validTo", + "thumbprint", + "friendlyName", + "issuer" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceCertificateDetails" + } + ], + "properties": { + "globalAcsNamespace": { + "description": "ACS namespace name - tenant for our service.", + "type": "string" + }, + "globalAcsHostName": { + "description": "Acs mgmt host name to connect to.", + "type": "string" + }, + "globalAcsRPRealm": { + "description": "Global ACS namespace RP realm.", + "type": "string" + } + }, + "x-ms-discriminator-value": "AccessControlService" + }, + "ResourceCertificateDetails": { + "description": "Certificate details representing the Vault credentials.", + "required": [ + "authType" + ], + "type": "object", + "properties": { + "authType": { + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "type": "string" + }, + "certificate": { + "format": "byte", + "description": "The base64 encoded certificate raw data string.", + "type": "string" + }, + "friendlyName": { + "description": "Certificate friendly name.", + "type": "string" + }, + "issuer": { + "description": "Certificate issuer.", + "type": "string" + }, + "resourceId": { + "format": "int64", + "description": "Resource ID of the vault.", + "type": "integer" + }, + "subject": { + "description": "Certificate Subject Name.", + "type": "string" + }, + "thumbprint": { + "description": "Certificate thumbprint.", + "type": "string" + }, + "validFrom": { + "format": "date-time", + "description": "Certificate Validity start Date time.", + "type": "string" + }, + "validTo": { + "format": "date-time", + "description": "Certificate Validity End Date time.", + "type": "string" + } + }, + "discriminator": "authType" + }, + "VaultCertificateResponse": { + "description": "Certificate corresponding to a vault that can be used by clients to register themselves with the vault.", + "type": "object", + "properties": { + "name": { + "description": "Resource name associated with the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...", + "type": "string", + "readOnly": true + }, + "id": { + "description": "Resource Id represents the complete path to the resource.", + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/ResourceCertificateDetails" + } + }, + "x-ms-azure-resource": true + } + }, + "parameters": { + "SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription Id.", + "required": true, + "type": "string" + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group where the recovery services vault is present.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "ApiVersion": { + "name": "api-version", + "in": "query", + "description": "Client Api Version.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account." + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/replicationusages.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/replicationusages.json new file mode 100644 index 000000000000..12b0cb45a2da --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/replicationusages.json @@ -0,0 +1,208 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-09-30-preview", + "title": "RecoveryServicesClient", + "x-ms-code-generation-settings": { + "internalConstructors": false + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/replicationUsages": { + "get": { + "tags": [ + "ReplicationUsages" + ], + "description": "Fetches the replication usages of the vault.", + "operationId": "ReplicationUsages_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReplicationUsageList" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": null + }, + "x-ms-examples": { + "Gets Replication usages of vault": { + "$ref": "./examples/ListReplicationUsages.json" + } + } + } + } + }, + "definitions": { + "JobsSummary": { + "description": "Summary of the replication job data for this vault.", + "type": "object", + "properties": { + "failedJobs": { + "description": "Count of failed jobs.", + "type": "integer" + }, + "suspendedJobs": { + "description": "Count of suspended jobs.", + "type": "integer" + }, + "inProgressJobs": { + "description": "Count of in-progress jobs.", + "type": "integer" + } + } + }, + "MonitoringSummary": { + "description": "Summary of the replication monitoring data for this vault.", + "type": "object", + "properties": { + "unHealthyVmCount": { + "description": "Count of unhealthy VMs.", + "type": "integer" + }, + "unHealthyProviderCount": { + "description": "Count of unhealthy replication providers.", + "type": "integer" + }, + "eventsCount": { + "description": "Count of all critical warnings.", + "type": "integer" + }, + "deprecatedProviderCount": { + "description": "Count of all deprecated recovery service providers.", + "type": "integer" + }, + "supportedProviderCount": { + "description": "Count of all the supported recovery service providers.", + "type": "integer" + }, + "unsupportedProviderCount": { + "description": "Count of all the unsupported recovery service providers.", + "type": "integer" + } + } + }, + "ReplicationUsage": { + "description": "Replication usages of a vault.", + "type": "object", + "properties": { + "monitoringSummary": { + "$ref": "#/definitions/MonitoringSummary", + "description": "Summary of the replication monitoring data for this vault." + }, + "jobsSummary": { + "$ref": "#/definitions/JobsSummary", + "description": "Summary of the replication jobs data for this vault." + }, + "protectedItemCount": { + "description": "Number of replication protected items for this vault.", + "type": "integer" + }, + "recoveryPlanCount": { + "description": "Number of replication recovery plans for this vault.", + "type": "integer" + }, + "registeredServersCount": { + "description": "Number of servers registered to this vault.", + "type": "integer" + }, + "recoveryServicesProviderAuthType": { + "description": "The authentication type of recovery service providers in the vault.", + "type": "integer" + } + } + }, + "ReplicationUsageList": { + "description": "Replication usages for vault.", + "type": "object", + "properties": { + "value": { + "description": "The list of replication usages for the given vault.", + "type": "array", + "items": { + "$ref": "#/definitions/ReplicationUsage" + } + } + } + } + }, + "parameters": { + "SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription Id.", + "required": true, + "type": "string" + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group where the recovery services vault is present.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "ApiVersion": { + "name": "api-version", + "in": "query", + "description": "Client Api Version.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account." + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaults.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaults.json new file mode 100644 index 000000000000..c638e5a2fabf --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaults.json @@ -0,0 +1,2629 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-09-30-preview", + "title": "RecoveryServicesClient", + "x-ms-code-generation-settings": { + "internalConstructors": false + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateLinkResources": { + "get": { + "tags": [ + "ListPrivateLinkResources" + ], + "summary": "Returns the list of private link resources that need to be created for Backup and SiteRecovery", + "operationId": "PrivateLinkResources_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PrivateLinkResources" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "List PrivateLinkResources": { + "$ref": "./examples/ListPrivateLinkResources.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateLinkResources/{privateLinkResourceName}": { + "get": { + "tags": [ + "GetPrivateLinkResources" + ], + "summary": "Returns a specified private link resource that need to be created for Backup and SiteRecovery", + "operationId": "PrivateLinkResources_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "privateLinkResourceName", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Get PrivateLinkResource": { + "$ref": "./examples/GetPrivateLinkResources.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/locations/{location}/checkNameAvailability": { + "post": { + "tags": [ + "RecoveryServices" + ], + "summary": "API to check for resource name availability.\r\nA name is available if no other resource exists that has the same SubscriptionId, Resource Name and Type\r\nor if one or more such resources exist, each of these must be GC'd and their time of deletion be more than 24 Hours Ago", + "operationId": "RecoveryServices_CheckNameAvailability", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "location", + "in": "path", + "description": "Location of the resource", + "required": true, + "type": "string" + }, + { + "name": "input", + "in": "body", + "description": "Contains information about Resource type and Resource name", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityParameters" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Availability status of Resource Name when no resource with same name, type and subscription exists, nor has been deleted within last 24 hours": { + "$ref": "./examples/CheckNameAvailability_Available.json" + }, + "Availability status of Resource Name when resource with same name, type and subscription exists": { + "$ref": "./examples/CheckNameAvailability_NotAvailable.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/capabilities": { + "post": { + "tags": [ + "RecoveryServices" + ], + "summary": "API to get details about capabilities provided by Microsoft.RecoveryServices RP", + "operationId": "RecoveryServices_Capabilities", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "location", + "in": "path", + "description": "Location of the resource", + "required": true, + "type": "string" + }, + { + "name": "input", + "in": "body", + "description": "Contains information about Resource type and properties to get capabilities", + "required": true, + "schema": { + "$ref": "#/definitions/ResourceCapabilities" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CapabilitiesResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Capabilities for Microsoft.RecoveryServices/Vaults": { + "$ref": "./examples/Capabilities.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults": { + "get": { + "tags": [ + "DeletedVaults" + ], + "description": "List of all DeletedVaults in the subscription.", + "operationId": "DeletedVaults_ListBySubscriptionId", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "List of all DeletedVaults in the subscription.", + "schema": { + "$ref": "#/definitions/DeletedVaultList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Gets the list of DeletedVaults in subscription": { + "$ref": "./examples/DeletedVaults_ListBySubscriptionId.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}": { + "get": { + "tags": [ + "DeletedVaults" + ], + "description": "Get the DeletedVault details.", + "operationId": "DeletedVaults_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/DeletedVaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeletedVault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Get Recovery Services DeletedVault": { + "$ref": "./examples/DeletedVaults_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}/undelete": { + "post": { + "tags": [ + "DeletedVaults" + ], + "description": "Undelete the DeletedVault.", + "operationId": "DeletedVaults_Undelete", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/DeletedVaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "undeleteInput", + "in": "body", + "description": "Undelete input.", + "required": true, + "schema": { + "$ref": "#/definitions/DeletedVaultUndeleteInput" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DeletedVault" + } + }, + "202": { + "description": "Accepted", + "headers": { + "Azure-AsyncOperation": { + "type": "string" + }, + "Location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Undelete the Recovery Services DeletedVault": { + "$ref": "./examples/DeletedVaults_Undelete.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{location}/deletedVaults/{deletedVaultName}/operations/{operationId}": { + "get": { + "tags": [ + "DeletedVaults" + ], + "description": "Gets the operation status for a DeletedVault.", + "operationId": "DeletedVaults_GetOperationStatus", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/DeletedVaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/OperationIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OperationResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get DeletedVault Operation Status": { + "$ref": "./examples/DeletedVaults_GetOperationStatus.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "description": "Fetches all the resources of the specified type in the subscription.", + "operationId": "Vaults_ListBySubscriptionId", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "List of Recovery Services Resources in SubscriptionId": { + "$ref": "./examples/ListBySubscriptionIds.json" + } + } + } + }, + "/providers/Microsoft.RecoveryServices/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Returns the list of available operations.", + "operationId": "Operations_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ClientDiscoveryResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "ListOperations": { + "$ref": "./examples/ListOperations.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "description": "Retrieve a list of Vaults.", + "operationId": "Vaults_ListByResourceGroup", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": "nextLink", + "itemName": "value" + }, + "x-ms-examples": { + "List of Recovery Services Resources in ResourceGroup": { + "$ref": "./examples/ListResources.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}": { + "get": { + "tags": [ + "Vaults" + ], + "description": "Get the Vault details.", + "operationId": "Vaults_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Get Recovery Services Resource": { + "$ref": "./examples/GETVault.json" + } + } + }, + "put": { + "tags": [ + "Vaults" + ], + "description": "Creates or updates a Recovery Services vault.", + "operationId": "Vaults_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "vault", + "in": "body", + "description": "Recovery Services Vault to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/Vault" + } + }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Create or Update Recovery Services vault": { + "$ref": "./examples/PUTVault.json" + }, + "Create or Update Vault with User Assigned Identity": { + "$ref": "./examples/PUTVault_WithUserAssignedIdentity.json" + }, + "Create or Update Vault with CustomerManagedKeys": { + "$ref": "./examples/PUTVault_WithCMK.json" + }, + "Create or Update Vault With Monitoring Setting": { + "$ref": "./examples/PUTVault_WithMonitoringSettings.json" + }, + "Create or Update Vault With Redundancy Setting": { + "$ref": "./examples/PUTVault_WithRedundancySettings.json" + }, + "Create or Update Vault performing critical operation With MUA": { + "$ref": "./examples/PUTVault_ResourceGuardEnabled.json" + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "Vaults" + ], + "description": "Deletes a vault.", + "operationId": "Vaults_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "Location": { + "type": "string" + } + } + }, + "204": { + "description": "NoContent" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Delete Recovery Services Vault": { + "$ref": "./examples/DeleteVault.json" + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Vaults" + ], + "description": "Updates the vault.", + "operationId": "Vaults_Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "vault", + "in": "body", + "description": "Recovery Services Vault to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/PatchVault" + } + }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "202": { + "description": "Accepted" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Update Resource": { + "$ref": "./examples/PATCHVault.json" + }, + "Update Resource With User Assigned Identity": { + "$ref": "./examples/PATCHVault_WithUserAssignedIdentity.json" + }, + "Update Resource With CustomerManagedKeys": { + "$ref": "./examples/PATCHVault_WithCMK.json" + }, + "Update Resource With CustomerManagedKeys2": { + "$ref": "./examples/PatchVault_WithCMK2.json" + }, + "Update Resource With CustomerManagedKeys3": { + "$ref": "./examples/PATCHVault_WithCMK3.json" + }, + "Update Vault With Monitoring Setting": { + "$ref": "./examples/PATCHVault_WithMonitoringSettings.json" + }, + "Update Vault With Redundancy Setting": { + "$ref": "./examples/PATCHVault_WithRedundancySettings.json" + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/extendedInformation/vaultExtendedInfo": { + "get": { + "tags": [ + "VaultExtendedInfo" + ], + "description": "Get the vault extended info.", + "operationId": "VaultExtendedInfo_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultExtendedInfoResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Get ExtendedInfo of Resource": { + "$ref": "./examples/GETVaultExtendedInfo.json" + } + } + }, + "put": { + "tags": [ + "VaultExtendedInfo" + ], + "description": "Create vault extended info.", + "operationId": "VaultExtendedInfo_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "resourceResourceExtendedInfoDetails", + "in": "body", + "description": "Details of ResourceExtendedInfo", + "required": true, + "schema": { + "$ref": "#/definitions/VaultExtendedInfoResource" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultExtendedInfoResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "Put ExtendedInfo of Resource": { + "$ref": "./examples/UpdateVaultExtendedInfo.json" + } + } + }, + "patch": { + "tags": [ + "VaultExtendedInfo" + ], + "description": "Update vault extended info.", + "operationId": "VaultExtendedInfo_Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "resourceResourceExtendedInfoDetails", + "in": "body", + "description": "Details of ResourceExtendedInfo", + "required": true, + "schema": { + "$ref": "#/definitions/VaultExtendedInfoResource" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultExtendedInfoResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "PATCH ExtendedInfo of Resource": { + "$ref": "./examples/UpdateVaultExtendedInfo.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/operationStatus/{operationId}": { + "get": { + "tags": [ + "Vaults" + ], + "description": "Gets the operation status for a resource.", + "operationId": "GetOperationStatus", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "operationId", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OperationResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get Operation Status": { + "$ref": "./examples/GetOperationStatus.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/operationResults/{operationId}": { + "get": { + "tags": [ + "Vaults" + ], + "description": "Gets the operation result for a resource.", + "operationId": "GetOperationResult", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "name": "operationId", + "in": "path", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "202": { + "description": "Accepted" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get Operation Result": { + "$ref": "./examples/GetOperationResult.json" + } + } + } + } + }, + "definitions": { + "AzureMonitorAlertSettings": { + "description": "Settings for Azure Monitor based alerts", + "type": "object", + "properties": { + "alertsForAllJobFailures": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AlertsState", + "modelAsString": true + } + }, + "alertsForAllReplicationIssues": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AlertsState", + "modelAsString": true + } + }, + "alertsForAllFailoverIssues": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AlertsState", + "modelAsString": true + } + } + } + }, + "CheckNameAvailabilityParameters": { + "description": "Resource Name availability input parameters - Resource type and resource name", + "type": "object", + "properties": { + "type": { + "description": "Describes the Resource type: Microsoft.RecoveryServices/Vaults", + "type": "string" + }, + "name": { + "description": "Resource name for which availability needs to be checked", + "type": "string" + } + } + }, + "CheckNameAvailabilityResult": { + "description": "Response for check name availability API. Resource provider will set availability as true | false.", + "type": "object", + "properties": { + "nameAvailable": { + "type": "boolean" + }, + "reason": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "ResourceCapabilitiesBase": { + "description": "Base class for request and response capabilities information for Microsoft.RecoveryServices", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "description": "Describes the Resource type: Microsoft.RecoveryServices/Vaults", + "type": "string" + } + } + }, + "ResourceCapabilities": { + "allOf": [ + { + "$ref": "#/definitions/ResourceCapabilitiesBase" + } + ], + "description": "Input to get capabilities information for Microsoft.RecoveryServices", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CapabilitiesProperties" + } + } + }, + "CapabilitiesResponse": { + "allOf": [ + { + "$ref": "#/definitions/ResourceCapabilitiesBase" + } + ], + "description": "Capabilities response for Microsoft.RecoveryServices", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CapabilitiesResponseProperties" + } + } + }, + "CapabilitiesProperties": { + "description": "Capabilities information", + "type": "object", + "properties": { + "dnsZones": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/DNSZone" + }, + "x-ms-identifiers": [] + } + } + }, + "CapabilitiesResponseProperties": { + "description": "Capabilities properties in response", + "type": "object", + "properties": { + "dnsZones": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/DNSZoneResponse" + }, + "x-ms-identifiers": [] + } + } + }, + "DNSZone": { + "description": "DNSZone information", + "type": "object", + "properties": { + "subResource": { + "description": "Subresource type for vault AzureBackup, AzureBackup_secondary or AzureSiteRecovery", + "enum": [ + "AzureBackup", + "AzureBackup_secondary", + "AzureSiteRecovery" + ], + "type": "string", + "x-ms-enum": { + "name": "VaultSubResourceType", + "modelAsString": true + } + } + } + }, + "DNSZoneResponse": { + "allOf": [ + { + "$ref": "#/definitions/DNSZone" + } + ], + "type": "object", + "description": "DNSZone information for Microsoft.RecoveryServices", + "properties": { + "requiredZoneNames": { + "description": "The private link resource Private link DNS zone names.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ClassicAlertSettings": { + "description": "Settings for classic alerts", + "type": "object", + "properties": { + "alertsForCriticalOperations": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AlertsState", + "modelAsString": true + } + }, + "emailNotificationsForSiteRecovery": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AlertsState", + "modelAsString": true + } + } + } + }, + "ClientDiscoveryDisplay": { + "description": "Localized display information of an operation.", + "type": "object", + "properties": { + "provider": { + "description": "Name of the provider for display purposes", + "type": "string" + }, + "resource": { + "description": "ResourceType for which this Operation can be performed.", + "type": "string" + }, + "operation": { + "description": "Operations Name itself.", + "type": "string" + }, + "description": { + "description": "Description of the operation having details of what operation is about.", + "type": "string" + } + } + }, + "ClientDiscoveryForLogSpecification": { + "description": "Class to represent shoebox log specification in json client discovery.", + "type": "object", + "properties": { + "name": { + "description": "Name of the log.", + "type": "string" + }, + "displayName": { + "description": "Localized display name", + "type": "string" + }, + "blobDuration": { + "description": "Blobs created in customer storage account per hour", + "type": "string" + } + } + }, + "ClientDiscoveryForProperties": { + "description": "Class to represent shoebox properties in json client discovery.", + "type": "object", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ClientDiscoveryForServiceSpecification", + "description": "Operation properties." + } + } + }, + "ClientDiscoveryForServiceSpecification": { + "description": "Class to represent shoebox service specification in json client discovery.", + "type": "object", + "properties": { + "logSpecifications": { + "description": "List of log specifications of this operation.", + "type": "array", + "items": { + "$ref": "#/definitions/ClientDiscoveryForLogSpecification" + } + } + } + }, + "ClientDiscoveryResponse": { + "description": "Operations List response which contains list of available APIs.", + "type": "object", + "properties": { + "value": { + "description": "List of available operations.", + "type": "array", + "items": { + "$ref": "#/definitions/ClientDiscoveryValueForSingleApi" + } + }, + "nextLink": { + "description": "Link to the next chunk of the response", + "type": "string" + } + } + }, + "ClientDiscoveryValueForSingleApi": { + "description": "Available operation details.", + "type": "object", + "properties": { + "name": { + "description": "Name of the Operation.", + "type": "string" + }, + "display": { + "$ref": "#/definitions/ClientDiscoveryDisplay", + "description": "Contains the localized display information for this particular operation" + }, + "origin": { + "description": "The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX", + "type": "string" + }, + "properties": { + "$ref": "#/definitions/ClientDiscoveryForProperties", + "description": "ShoeBox properties for the given operation." + } + } + }, + "CrossSubscriptionRestoreSettings": { + "description": "Settings for Cross Subscription Restore Settings", + "type": "object", + "properties": { + "crossSubscriptionRestoreState": { + "enum": [ + "Enabled", + "Disabled", + "PermanentlyDisabled" + ], + "type": "string", + "x-ms-enum": { + "name": "crossSubscriptionRestoreState", + "modelAsString": true + } + } + } + }, + "DeletedVaultList": { + "description": "The response model for a list of DeletedVaults.", + "type": "object", + "properties": { + "value": { + "description": "The list of DeletedVaults.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/DeletedVault" + } + }, + "nextLink": { + "description": "The value of next link.", + "type": "string", + "readOnly": true + } + } + }, + "DeletedVault": { + "description": "DeletedVault information as returned by the resource provider.", + "type": "object", + "properties": { + "id": { + "description": "ARM ID of the resource.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "ARM name of the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Type of resource.", + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/DeletedVaultProperties" + } + } + }, + "DeletedVaultProperties": { + "description": "Properties of the DeletedVault.", + "type": "object", + "properties": { + "vaultId": { + "description": "ARM Id of the Vault which was deleted.", + "type": "string", + "readOnly": true + }, + "vaultDeletionTime": { + "description": "Time in UTC at which the Vault was deleted.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "purgeAt": { + "description": "Time in UTC at which the DeletedVault will be purged.", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "DeletedVaultUndeleteInput": { + "description": "Input definition for DeletedVault undelete.", + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/DeletedVaultUndeleteInputProperties", + "description": "Undelete input properties." + } + } + }, + "DeletedVaultUndeleteInputProperties": { + "description": "Input definition for DeletedVault undelete properties.", + "required": [ + "recoveryResourceGroupId" + ], + "type": "object", + "properties": { + "recoveryResourceGroupId": { + "description": "Recovery resource group Id.", + "type": "string" + } + } + }, + "RestoreSettings": { + "description": "Restore Settings of the vault", + "type": "object", + "properties": { + "crossSubscriptionRestoreSettings": { + "description": "Settings for CrossSubscriptionRestore", + "$ref": "#/definitions/CrossSubscriptionRestoreSettings" + } + } + }, + "ImmutabilitySettings": { + "description": "Immutability Settings of vault", + "type": "object", + "properties": { + "state": { + "enum": [ + "Disabled", + "Unlocked", + "Locked" + ], + "type": "string", + "x-ms-enum": { + "name": "ImmutabilityState", + "modelAsString": true + } + } + } + }, + "SoftDeleteSettings": { + "description": "Soft delete Settings of vault", + "type": "object", + "properties": { + "softDeleteState": { + "enum": [ + "Invalid", + "Enabled", + "Disabled", + "AlwaysON" + ], + "type": "string", + "x-ms-enum": { + "name": "SoftDeleteState", + "modelAsString": true + } + }, + "softDeleteRetentionPeriodInDays": { + "format": "int32", + "description": "Soft delete retention period in days", + "type": "integer" + }, + "enhancedSecurityState": { + "enum": [ + "Invalid", + "Enabled", + "Disabled", + "AlwaysON" + ], + "type": "string", + "x-ms-enum": { + "name": "EnhancedSecurityState", + "modelAsString": true + } + } + } + }, + "MultiUserAuthorization": { + "description": "MUA Settings of vault", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "MultiUserAuthorization", + "modelAsString": true + } + }, + "MonitoringSettings": { + "description": "Monitoring Settings of the vault", + "type": "object", + "properties": { + "azureMonitorAlertSettings": { + "description": "Settings for Azure Monitor based alerts", + "$ref": "#/definitions/AzureMonitorAlertSettings" + }, + "classicAlertSettings": { + "description": "Settings for classic alerts", + "$ref": "#/definitions/ClassicAlertSettings" + } + } + }, + "Resource": { + "description": "ARM Resource.", + "type": "object", + "properties": { + "id": { + "description": "Resource Id represents the complete path to the resource.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "Resource name associated with the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...", + "type": "string", + "readOnly": true + }, + "etag": { + "description": "Optional ETag.", + "type": "string" + } + }, + "x-ms-azure-resource": true + }, + "SecuritySettings": { + "description": "Security Settings of the vault", + "type": "object", + "properties": { + "immutabilitySettings": { + "description": "Immutability Settings of a vault", + "$ref": "#/definitions/ImmutabilitySettings" + }, + "softDeleteSettings": { + "description": "Soft delete Settings of a vault", + "$ref": "#/definitions/SoftDeleteSettings" + }, + "multiUserAuthorization": { + "description": "MUA Settings of a vault", + "$ref": "#/definitions/MultiUserAuthorization" + } + } + }, + "Sku": { + "description": "Identifies the unique system identifier for each Azure resource.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Name of SKU is RS0 (Recovery Services 0th version) and the tier is standard tier. They do not have affect on backend storage redundancy or any other vault settings. To manage storage redundancy, use the backupstorageconfig", + "enum": [ + "Standard", + "RS0" + ], + "type": "string", + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true + } + }, + "tier": { + "description": "The Sku tier.", + "type": "string" + }, + "family": { + "description": "The sku family", + "type": "string" + }, + "size": { + "description": "The sku size", + "type": "string" + }, + "capacity": { + "description": "The sku capacity", + "type": "string" + } + } + }, + "TrackedResource": { + "description": "Tracked resource with location.", + "type": "object", + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "location": { + "description": "Resource location.", + "type": "string" + }, + "tags": { + "description": "Resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "PatchTrackedResource": { + "description": "Tracked resource with location.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "location": { + "description": "Resource location.", + "type": "string" + }, + "tags": { + "description": "Resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "UpgradeDetails": { + "description": "Details for upgrading vault.", + "type": "object", + "properties": { + "operationId": { + "description": "ID of the vault upgrade operation.", + "type": "string", + "readOnly": true + }, + "startTimeUtc": { + "description": "UTC time at which the upgrade operation has started.", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "lastUpdatedTimeUtc": { + "description": "UTC time at which the upgrade operation status was last updated.", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "endTimeUtc": { + "description": "UTC time at which the upgrade operation has ended.", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "status": { + "description": "Status of the vault upgrade operation.", + "enum": [ + "Unknown", + "InProgress", + "Upgraded", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "VaultUpgradeState", + "modelAsString": true + } + }, + "message": { + "description": "Message to the user containing information about the upgrade operation.", + "type": "string", + "readOnly": true + }, + "triggerType": { + "description": "The way the vault upgrade was triggered.", + "enum": [ + "UserTriggered", + "ForcedUpgrade" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "TriggerType", + "modelAsString": true + } + }, + "upgradedResourceId": { + "description": "Resource ID of the upgraded vault.", + "type": "string", + "readOnly": true + }, + "previousResourceId": { + "description": "Resource ID of the vault before the upgrade.", + "type": "string", + "readOnly": true + } + } + }, + "Vault": { + "description": "Resource information, as returned by the resource provider.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "properties": { + "identity": { + "$ref": "#/definitions/IdentityData" + }, + "properties": { + "$ref": "#/definitions/VaultProperties" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "systemData": { + "$ref": "#/definitions/systemData" + } + } + }, + "systemData": { + "description": "Metadata pertaining to creation and last modification of the resource.", + "type": "object", + "readOnly": true, + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "type": "string", + "description": "The type of identity that last modified the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "createdByType", + "modelAsString": true + } + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The type of identity that last modified the resource." + } + } + }, + "PatchVault": { + "description": "Patch Resource information, as returned by the resource provider.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/PatchTrackedResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/VaultProperties" + }, + "sku": { + "$ref": "#/definitions/Sku" + }, + "identity": { + "$ref": "#/definitions/IdentityData" + } + } + }, + "VaultExtendedInfo": { + "description": "Vault extended information.", + "type": "object", + "properties": { + "integrityKey": { + "description": "Integrity key.", + "type": "string" + }, + "encryptionKey": { + "description": "Encryption key.", + "type": "string" + }, + "encryptionKeyThumbprint": { + "description": "Encryption key thumbprint.", + "type": "string" + }, + "algorithm": { + "description": "Algorithm for Vault ExtendedInfo", + "type": "string" + } + } + }, + "VaultExtendedInfoResource": { + "description": "Vault extended information.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/VaultExtendedInfo", + "x-ms-client-flatten": true + } + } + }, + "VaultList": { + "description": "The response model for a list of Vaults.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Vault" + } + }, + "nextLink": { + "type": "string", + "readOnly": true + } + } + }, + "VaultProperties": { + "description": "Properties of the vault.", + "type": "object", + "properties": { + "provisioningState": { + "description": "Provisioning State.", + "type": "string", + "readOnly": true + }, + "upgradeDetails": { + "$ref": "#/definitions/UpgradeDetails" + }, + "privateEndpointConnections": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnectionVaultProperties" + }, + "description": "List of private endpoint connection.", + "readOnly": true + }, + "privateEndpointStateForBackup": { + "description": "Private endpoint state for backup.", + "enum": [ + "None", + "Enabled" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "VaultPrivateEndpointState", + "modelAsString": true + } + }, + "privateEndpointStateForSiteRecovery": { + "description": "Private endpoint state for site recovery.", + "enum": [ + "None", + "Enabled" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "VaultPrivateEndpointState", + "modelAsString": true + } + }, + "encryption": { + "description": "Customer Managed Key details of the resource.", + "type": "object", + "properties": { + "keyVaultProperties": { + "$ref": "#/definitions/CmkKeyVaultProperties" + }, + "kekIdentity": { + "$ref": "#/definitions/CmkKekIdentity" + }, + "infrastructureEncryption": { + "description": "Enabling/Disabling the Double Encryption state", + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "InfrastructureEncryptionState", + "modelAsString": true + } + } + } + }, + "moveDetails": { + "description": "The details of the latest move operation performed on the Azure Resource", + "type": "object", + "properties": { + "operationId": { + "description": "OperationId of the Resource Move Operation", + "type": "string", + "readOnly": true + }, + "startTimeUtc": { + "description": "Start Time of the Resource Move Operation", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "completionTimeUtc": { + "description": "End Time of the Resource Move Operation", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sourceResourceId": { + "description": "Source Resource of the Resource Move Operation", + "type": "string", + "readOnly": true + }, + "targetResourceId": { + "description": "Target Resource of the Resource Move Operation", + "type": "string", + "readOnly": true + } + } + }, + "moveState": { + "description": "The State of the Resource after the move operation", + "type": "string", + "readOnly": true, + "enum": [ + "Unknown", + "InProgress", + "PrepareFailed", + "CommitFailed", + "PrepareTimedout", + "CommitTimedout", + "MoveSucceeded", + "Failure", + "CriticalFailure", + "PartialSuccess" + ], + "x-ms-enum": { + "name": "ResourceMoveState", + "modelAsString": true + } + }, + "backupStorageVersion": { + "description": "Backup storage version", + "enum": [ + "V1", + "V2", + "Unassigned" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "BackupStorageVersion", + "modelAsString": true + } + }, + "publicNetworkAccess": { + "description": "property to enable or disable resource provider inbound network traffic from public clients", + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true + } + }, + "monitoringSettings": { + "description": "Monitoring Settings of the vault", + "$ref": "#/definitions/MonitoringSettings" + }, + "restoreSettings": { + "description": "Restore Settings of the vault", + "$ref": "#/definitions/RestoreSettings" + }, + "redundancySettings": { + "description": "The redundancy Settings of a Vault", + "type": "object", + "properties": { + "standardTierStorageRedundancy": { + "description": "The storage redundancy setting of a vault", + "enum": [ + "Invalid", + "LocallyRedundant", + "GeoRedundant", + "ZoneRedundant" + ], + "type": "string", + "x-ms-enum": { + "name": "standardTierStorageRedundancy", + "modelAsString": true + } + }, + "crossRegionRestore": { + "description": "Flag to show if Cross Region Restore is enabled on the Vault or not", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "name": "crossRegionRestore", + "modelAsString": true + } + } + } + }, + "securitySettings": { + "description": "Security Settings of the vault", + "$ref": "#/definitions/SecuritySettings" + }, + "secureScore": { + "description": "Secure Score of Recovery Services Vault", + "type": "string", + "enum": [ + "None", + "Minimum", + "Adequate", + "Maximum" + ], + "readOnly": true, + "x-ms-enum": { + "name": "SecureScoreLevel", + "modelAsString": true + } + }, + "bcdrSecurityLevel": { + "description": "Security levels of Recovery Services Vault for business continuity and disaster recovery", + "type": "string", + "enum": [ + "Poor", + "Fair", + "Good", + "Excellent" + ], + "readOnly": true, + "x-ms-enum": { + "name": "BCDRSecurityLevel", + "modelAsString": true + } + }, + "resourceGuardOperationRequests": { + "description": "ResourceGuardOperationRequests on which LAC check will be performed", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "IdentityData": { + "required": [ + "type" + ], + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "readOnly": true, + "type": "string", + "description": "The principal ID of resource identity." + }, + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The tenant ID of resource." + }, + "type": { + "type": "string", + "description": "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identities.", + "enum": [ + "SystemAssigned", + "None", + "UserAssigned", + "SystemAssigned, UserAssigned" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": true + } + }, + "userAssignedIdentities": { + "description": "The list of user-assigned identities associated with the resource. The user-assigned identity dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UserIdentity" + } + } + } + }, + "UserIdentity": { + "type": "object", + "description": "A resource identity that is managed by the user of the service.", + "properties": { + "principalId": { + "description": "The principal ID of the user-assigned identity.", + "type": "string", + "readOnly": true + }, + "clientId": { + "description": "The client ID of the user-assigned identity.", + "type": "string", + "readOnly": true + } + } + }, + "PrivateEndpointConnectionVaultProperties": { + "description": "Information to be stored in Vault properties as an element of privateEndpointConnections List.", + "readOnly": true, + "type": "object", + "properties": { + "id": { + "description": "Format of id subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.[Service]/{resource}/{resourceName}/privateEndpointConnections/{connectionName}.", + "readOnly": true, + "type": "string" + }, + "properties": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "name": { + "description": "The name of the private Endpoint Connection", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type, which will be of the format, Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "type": "string", + "readOnly": true + }, + "location": { + "description": "The location of the private Endpoint connection", + "type": "string", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "description": "Private Endpoint Connection Response Properties.", + "readOnly": true, + "type": "object", + "properties": { + "provisioningState": { + "description": "Gets or sets provisioning state of the private endpoint connection.", + "readOnly": true, + "enum": [ + "Succeeded", + "Deleting", + "Failed", + "Pending" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + } + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + "groupIds": { + "description": "Group Ids for the Private Endpoint", + "type": "array", + "items": { + "description": "GroupId for the PrivateEndpointConnection - AzureBackup, AzureBackup_secondary or AzureSiteRecovery", + "enum": [ + "AzureBackup", + "AzureBackup_secondary", + "AzureSiteRecovery" + ], + "type": "string", + "x-ms-enum": { + "name": "VaultSubResourceType", + "modelAsString": true + } + } + } + } + }, + "PrivateEndpoint": { + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection.", + "readOnly": true, + "type": "object", + "properties": { + "id": { + "description": "Gets or sets id.", + "readOnly": true, + "type": "string" + } + } + }, + "PrivateLinkServiceConnectionState": { + "description": "Gets or sets private link service connection state.", + "readOnly": true, + "type": "object", + "properties": { + "status": { + "description": "Gets or sets the status.", + "readOnly": true, + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "type": "string", + "x-ms-enum": { + "name": "PrivateEndpointConnectionStatus", + "modelAsString": true + } + }, + "description": { + "description": "Gets or sets description.", + "readOnly": true, + "type": "string" + }, + "actionsRequired": { + "description": "Gets or sets actions required.", + "readOnly": true, + "type": "string" + } + } + }, + "PrivateLinkResources": { + "description": "Class which represent the stamps associated with the vault.", + "readOnly": true, + "type": "object", + "properties": { + "value": { + "description": "A collection of private link resources", + "type": "array", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "nextLink": { + "description": "Link to the next chunk of the response", + "type": "string" + } + } + }, + "PrivateLinkResource": { + "description": "Information of the private link resource.", + "readOnly": true, + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties", + "x-ms-client-flatten": true + }, + "id": { + "description": "Fully qualified identifier of the resource.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "Name of the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "e.g. Microsoft.RecoveryServices/vaults/privateLinkResources", + "readOnly": true, + "type": "string" + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of the private link resource.", + "properties": { + "groupId": { + "description": "e.g. f9ad6492-33d4-4690-9999-6bfd52a0d081 (Backup) or f9ad6492-33d4-4690-9999-6bfd52a0d082 (SiteRecovery)", + "readOnly": true, + "type": "string" + }, + "requiredMembers": { + "description": "[backup-ecs1, backup-prot1, backup-prot1b, backup-prot1c, backup-id1]", + "readOnly": true, + "type": "array", + "items": { + "type": "string" + } + }, + "requiredZoneNames": { + "description": "The private link resource Private link DNS zone name.", + "readOnly": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CmkKeyVaultProperties": { + "type": "object", + "description": "The properties of the Key Vault which hosts CMK", + "properties": { + "keyUri": { + "description": "The key uri of the Customer Managed Key", + "type": "string" + } + } + }, + "CmkKekIdentity": { + "type": "object", + "description": "The details of the identity used for CMK", + "properties": { + "useSystemAssignedIdentity": { + "type": "boolean", + "description": "Indicate that system assigned identity should be used. Mutually exclusive with 'userAssignedIdentity' field" + }, + "userAssignedIdentity": { + "type": "string", + "description": "The user assigned identity to be used to grant permissions in case the type of identity used is UserAssigned" + } + } + }, + "OperationResource": { + "type": "object", + "description": "Operation Resource", + "properties": { + "endTime": { + "description": "End time of the operation", + "format": "date-time", + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error", + "description": "Required if status == failed or status == canceled. This is the OData v4 error format, used by the RPC and will go into the v2.2 Azure REST API guidelines." + }, + "id": { + "description": "It should match what is used to GET the operation result", + "type": "string" + }, + "name": { + "description": "It must match the last segment of the \"id\" field, and will typically be a GUID / system generated value", + "type": "string" + }, + "status": { + "description": "The status of the operation. (InProgress/Success/Failed/Cancelled)", + "type": "string" + }, + "startTime": { + "description": "Start time of the operation", + "format": "date-time", + "type": "string" + } + } + }, + "CloudError": { + "description": "An error response from Azure Backup.", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "title": "CloudError", + "x-ms-external": true + }, + "Error": { + "description": "The resource management error response.", + "properties": { + "additionalInfo": { + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "type": "array" + }, + "code": { + "description": "The error code.", + "readOnly": true, + "type": "string" + }, + "details": { + "description": "The error details.", + "items": { + "$ref": "#/definitions/Error" + }, + "readOnly": true, + "type": "array" + }, + "message": { + "description": "The error message.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "The error target.", + "readOnly": true, + "type": "string" + } + } + }, + "ErrorAdditionalInfo": { + "description": "The resource management error additional info.", + "properties": { + "info": { + "description": "The additional info.", + "readOnly": true, + "type": "object" + }, + "type": { + "description": "The additional info type.", + "readOnly": true, + "type": "string" + } + } + } + }, + "parameters": { + "SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription Id.", + "required": true, + "type": "string" + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group where the recovery services vault is present.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "DeletedVaultName": { + "name": "deletedVaultName", + "in": "path", + "description": "The name of the deleted recovery services vault.", + "required": true, + "pattern": "^[A-Za-z][A-Za-z0-9-]*$", + "type": "string" + }, + "ApiVersion": { + "name": "api-version", + "in": "query", + "description": "Client Api Version.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account." + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaultusages.json b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaultusages.json new file mode 100644 index 000000000000..54dd16018afd --- /dev/null +++ b/specification/recoveryservices/resource-manager/Microsoft.RecoveryServices/preview/2024-09-30-preview/vaultusages.json @@ -0,0 +1,189 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-09-30-preview", + "title": "RecoveryServicesClient", + "x-ms-code-generation-settings": { + "internalConstructors": false + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/usages": { + "get": { + "tags": [ + "VaultUsages" + ], + "description": "Fetches the usages of the vault.", + "operationId": "Usages_ListByVaults", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/VaultName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/VaultUsageList" + } + } + }, + "deprecated": false, + "x-ms-pageable": { + "nextLinkName": null + }, + "x-ms-examples": { + "Gets vault usages": { + "$ref": "./examples/ListUsages.json" + } + } + } + } + }, + "definitions": { + "VaultUsage": { + "description": "Usages of a vault.", + "type": "object", + "properties": { + "unit": { + "description": "Unit of the usage.", + "enum": [ + "Count", + "Bytes", + "Seconds", + "Percent", + "CountPerSecond", + "BytesPerSecond" + ], + "type": "string", + "x-ms-enum": { + "name": "UsagesUnit", + "modelAsString": true + } + }, + "quotaPeriod": { + "description": "Quota period of usage.", + "type": "string" + }, + "nextResetTime": { + "format": "date-time", + "description": "Next reset time of usage.", + "type": "string" + }, + "currentValue": { + "format": "int64", + "description": "Current value of usage.", + "type": "integer" + }, + "limit": { + "format": "int64", + "description": "Limit of usage.", + "type": "integer" + }, + "name": { + "$ref": "#/definitions/NameInfo", + "description": "Name of usage." + } + } + }, + "VaultUsageList": { + "description": "Usage for vault.", + "type": "object", + "properties": { + "value": { + "description": "The list of usages for the given vault.", + "type": "array", + "items": { + "$ref": "#/definitions/VaultUsage" + } + } + } + }, + "NameInfo": { + "description": "The name of usage.", + "type": "object", + "properties": { + "value": { + "description": "Value of usage.", + "type": "string" + }, + "localizedValue": { + "description": "Localized value of usage.", + "type": "string" + } + } + } + }, + "parameters": { + "SubscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription Id.", + "required": true, + "type": "string" + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group where the recovery services vault is present.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "ApiVersion": { + "name": "api-version", + "in": "query", + "description": "Client Api Version.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account." + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/recoveryservices/resource-manager/readme.md b/specification/recoveryservices/resource-manager/readme.md index af54fd007665..ef1a5c027cf0 100644 --- a/specification/recoveryservices/resource-manager/readme.md +++ b/specification/recoveryservices/resource-manager/readme.md @@ -42,7 +42,6 @@ semantic-validator: true message-format: json ``` - ### Tag: package-2024-10 These settings apply only when `--tag=package-2024-10` is specified on the command line. @@ -55,6 +54,18 @@ input-file: - Microsoft.RecoveryServices/stable/2024-10-01/vaultusages.json ``` +### Tag: package-preview-2024-09 + +These settings apply only when `--tag=package-preview-2024-09` is specified on the command line. + +```yaml $(tag) == 'package-preview-2024-09' +input-file: + - Microsoft.RecoveryServices/preview/2024-09-30-preview/registeredidentities.json + - Microsoft.RecoveryServices/preview/2024-09-30-preview/replicationusages.json + - Microsoft.RecoveryServices/preview/2024-09-30-preview/vaults.json + - Microsoft.RecoveryServices/preview/2024-09-30-preview/vaultusages.json +``` + ### Tag: package-preview-2024-04 These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. @@ -78,6 +89,7 @@ input-file: - Microsoft.RecoveryServices/stable/2024-04-01/vaults.json - Microsoft.RecoveryServices/stable/2024-04-01/vaultusages.json ``` + ### Tag: package-2024-02 These settings apply only when `--tag=package-2024-02` is specified on the command line. From 99c0e6059f402f1b0cbfc946cd131ba3c395a2e3 Mon Sep 17 00:00:00 2001 From: chantalolieman Date: Thu, 9 Jan 2025 04:00:47 -0800 Subject: [PATCH 04/82] bugfix in api spec (#31695) --- .../RedisEnterpriseDatabasesForceLink.json | 20 ++++++----- .../2024-03-01-preview/redisenterprise.json | 35 +++++++++++++------ .../RedisEnterpriseDatabasesForceLink.json | 20 ++++++----- .../2024-06-01-preview/redisenterprise.json | 35 +++++++++++++------ .../RedisEnterpriseDatabasesForceLink.json | 20 ++++++----- .../2024-09-01-preview/redisenterprise.json | 35 +++++++++++++------ .../RedisEnterpriseDatabasesForceLink.json | 20 ++++++----- .../stable/2024-10-01/redisenterprise.json | 35 +++++++++++++------ 8 files changed, 140 insertions(+), 80 deletions(-) diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/examples/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/examples/RedisEnterpriseDatabasesForceLink.json index 532eae35ccc9..c8a376b52b71 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/examples/RedisEnterpriseDatabasesForceLink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/examples/RedisEnterpriseDatabasesForceLink.json @@ -6,15 +6,17 @@ "api-version": "2024-03-01-preview", "subscriptionId": "00000000-0000-0000-0000-000000000000", "parameters": { - "groupNickname": "groupName", - "linkedDatabases": [ - { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" - }, - { - "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" - } - ] + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + } } }, "responses": { diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/redisenterprise.json index bf376f35e91f..9d570d881ba4 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/redisenterprise.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-03-01-preview/redisenterprise.json @@ -2032,19 +2032,32 @@ "type": "object", "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", "required": [ - "groupNickname", - "linkedDatabases" + "geoReplication" ], "properties": { - "groupNickname": { - "type": "string", - "description": "The name of the group of linked database resources. This should match the existing replication group name." - }, - "linkedDatabases": { - "type": "array", - "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", - "items": { - "$ref": "#/definitions/LinkedDatabase" + "geoReplication": { + "type": "object", + "description": "Properties to configure geo replication for this database.", + "x-ms-mutability": [ + "read", + "create" + ], + "properties": { + "groupNickname": { + "type": "string", + "description": "The name of the group of linked database resources. This should match the existing replication group name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "linkedDatabases": { + "type": "array", + "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } + } } } } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/examples/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/examples/RedisEnterpriseDatabasesForceLink.json index f523cdd59fe7..4d9844634f01 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/examples/RedisEnterpriseDatabasesForceLink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/examples/RedisEnterpriseDatabasesForceLink.json @@ -6,15 +6,17 @@ "api-version": "2024-06-01-preview", "subscriptionId": "00000000-0000-0000-0000-000000000000", "parameters": { - "groupNickname": "groupName", - "linkedDatabases": [ - { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" - }, - { - "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" - } - ] + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + } } }, "responses": { diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/redisenterprise.json index 58eced3bf28c..e887618ce8a9 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/redisenterprise.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-06-01-preview/redisenterprise.json @@ -2033,19 +2033,32 @@ "type": "object", "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", "required": [ - "groupNickname", - "linkedDatabases" + "geoReplication" ], "properties": { - "groupNickname": { - "type": "string", - "description": "The name of the group of linked database resources. This should match the existing replication group name." - }, - "linkedDatabases": { - "type": "array", - "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", - "items": { - "$ref": "#/definitions/LinkedDatabase" + "geoReplication": { + "type": "object", + "description": "Properties to configure geo replication for this database.", + "x-ms-mutability": [ + "read", + "create" + ], + "properties": { + "groupNickname": { + "type": "string", + "description": "The name of the group of linked database resources. This should match the existing replication group name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "linkedDatabases": { + "type": "array", + "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } + } } } } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/examples/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/examples/RedisEnterpriseDatabasesForceLink.json index 43779d4b6fc9..34c90e37d8cd 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/examples/RedisEnterpriseDatabasesForceLink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/examples/RedisEnterpriseDatabasesForceLink.json @@ -6,15 +6,17 @@ "api-version": "2024-09-01-preview", "subscriptionId": "00000000-0000-0000-0000-000000000000", "parameters": { - "groupNickname": "groupName", - "linkedDatabases": [ - { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" - }, - { - "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" - } - ] + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + } } }, "responses": { diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/redisenterprise.json index b731f4bcac98..45365c3091aa 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/redisenterprise.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/preview/2024-09-01-preview/redisenterprise.json @@ -2555,19 +2555,32 @@ "type": "object", "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", "required": [ - "groupNickname", - "linkedDatabases" + "geoReplication" ], "properties": { - "groupNickname": { - "type": "string", - "description": "The name of the group of linked database resources. This should match the existing replication group name." - }, - "linkedDatabases": { - "type": "array", - "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", - "items": { - "$ref": "#/definitions/LinkedDatabase" + "geoReplication": { + "type": "object", + "description": "Properties to configure geo replication for this database.", + "x-ms-mutability": [ + "read", + "create" + ], + "properties": { + "groupNickname": { + "type": "string", + "description": "The name of the group of linked database resources. This should match the existing replication group name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "linkedDatabases": { + "type": "array", + "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } + } } } } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/examples/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/examples/RedisEnterpriseDatabasesForceLink.json index 7b9aaabb7e27..bb9f17b4c217 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/examples/RedisEnterpriseDatabasesForceLink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/examples/RedisEnterpriseDatabasesForceLink.json @@ -6,15 +6,17 @@ "api-version": "2024-10-01", "subscriptionId": "00000000-0000-0000-0000-000000000000", "parameters": { - "groupNickname": "groupName", - "linkedDatabases": [ - { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" - }, - { - "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" - } - ] + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + } } }, "responses": { diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/redisenterprise.json index 992729cfa707..620117131bd9 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/redisenterprise.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/stable/2024-10-01/redisenterprise.json @@ -2057,19 +2057,32 @@ "type": "object", "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", "required": [ - "groupNickname", - "linkedDatabases" + "geoReplication" ], "properties": { - "groupNickname": { - "type": "string", - "description": "The name of the group of linked database resources. This should match the existing replication group name." - }, - "linkedDatabases": { - "type": "array", - "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", - "items": { - "$ref": "#/definitions/LinkedDatabase" + "geoReplication": { + "type": "object", + "description": "Properties to configure geo replication for this database.", + "x-ms-mutability": [ + "read", + "create" + ], + "properties": { + "groupNickname": { + "type": "string", + "description": "The name of the group of linked database resources. This should match the existing replication group name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "linkedDatabases": { + "type": "array", + "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } + } } } } From 4c56d5542875b8a48ef01a9ad5886f6aaea3e482 Mon Sep 17 00:00:00 2001 From: Scott Addie <10702007+scottaddie@users.noreply.github.com> Date: Thu, 9 Jan 2025 13:11:44 -0600 Subject: [PATCH 05/82] Rebranding of Azure AI Studio (#32063) * Rebranding of Azure AI Studio * Fix spelling error --- .../preview/2024-11-01-preview/searchservice.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/search/data-plane/Azure.Search/preview/2024-11-01-preview/searchservice.json b/specification/search/data-plane/Azure.Search/preview/2024-11-01-preview/searchservice.json index 2445398325e1..dc9835fe0a8e 100644 --- a/specification/search/data-plane/Azure.Search/preview/2024-11-01-preview/searchservice.json +++ b/specification/search/data-plane/Azure.Search/preview/2024-11-01-preview/searchservice.json @@ -2851,7 +2851,7 @@ { "value": "cjk_width", "name": "CjkWidth", - "description": "Normalizes CJK width differences. Folds fullwidth ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" + "description": "Normalizes CJK width differences. Folds full-width ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" }, { "value": "classic", @@ -6718,7 +6718,7 @@ "description": "Specifies the properties of the AML vectorizer." } }, - "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Studio Model Catalog for generating the vector embedding of a query string." + "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string." }, "AMLParameters": { "type": "object", @@ -6754,7 +6754,7 @@ }, "modelName": { "$ref": "#/definitions/AIStudioModelCatalogName", - "description": "The name of the embedding model from the Azure AI Studio Catalog that is deployed at the provided endpoint." + "description": "The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint." } }, "required": [ @@ -6802,7 +6802,7 @@ } ] }, - "description": "The name of the embedding model from the Azure AI Studio Catalog that will be called." + "description": "The name of the embedding model from the Azure AI Foundry Catalog that will be called." }, "VectorSearchVectorizerKind": { "type": "string", @@ -6834,7 +6834,7 @@ { "value": "aml", "name": "AML", - "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Studio Model Catalog at query time." + "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time." } ] }, From 008a07d8857377bdd77bcd347d11f278fba7d856 Mon Sep 17 00:00:00 2001 From: xuhumsft <116764429+xuhumsft@users.noreply.github.com> Date: Thu, 9 Jan 2025 11:12:44 -0800 Subject: [PATCH 06/82] Dev sentinel securityinsights microsoft.security insights 2024 10 01 preview (#31790) * Copy files from preview/2024-04-01-preview Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to preview/2024-10-01-preview Updated the API version from preview/2024-04-01-preview to preview/2024-10-01-preview. * Added tag for 2024-10-01-preview in readme file * support odata search in listing product packages (#31740) * support odata search in listing product packages * add new supported contentKind * fix perttier errors * Fix Data connectors API Typos (#31806) * Add PurviewAudit connector (#31821) * Add PurviewAudit connector * prettier fix * prettier fix --------- Co-authored-by: Will King * resolve comments and fix the prettier issue (#31965) * Watchlist fix (#32047) * reorder TI parameter to address breaking change errors (#32053) --------- Co-authored-by: NISHILBISHT Co-authored-by: sagamzu <52034287+sagamzu@users.noreply.github.com> Co-authored-by: kingwil <5839248+kingwil@users.noreply.github.com> Co-authored-by: Will King Co-authored-by: nbatyrbb <115049492+nbatyrbb@users.noreply.github.com> --- .../2024-10-01-preview/AlertRules.json | 2600 ++++++++++ .../2024-10-01-preview/AutomationRules.json | 1549 ++++++ .../2024-10-01-preview/BillingStatistics.json | 226 + .../preview/2024-10-01-preview/Bookmarks.json | 751 +++ .../BusinessApplicationAgents.json | 1691 +++++++ .../2024-10-01-preview/ContentPackages.json | 319 ++ .../ContentProductPackages.json | 235 + .../ContentProductTemplates.json | 226 + .../2024-10-01-preview/ContentTemplates.json | 353 ++ .../EnrichmentWithWorkspace.json | 443 ++ .../preview/2024-10-01-preview/Entities.json | 1559 ++++++ .../2024-10-01-preview/EntityQueries.json | 534 +++ .../EntityQueryTemplates.json | 331 ++ .../2024-10-01-preview/FileImports.json | 575 +++ .../preview/2024-10-01-preview/Hunts.json | 994 ++++ .../preview/2024-10-01-preview/Incidents.json | 1669 +++++++ .../preview/2024-10-01-preview/Metadata.json | 774 +++ .../2024-10-01-preview/OfficeConsents.json | 234 + .../2024-10-01-preview/OnboardingStates.json | 284 ++ .../2024-10-01-preview/Recommendations.json | 452 ++ .../SecurityMLAnalyticsSettings.json | 444 ++ .../preview/2024-10-01-preview/Settings.json | 438 ++ .../2024-10-01-preview/SourceControls.json | 1005 ++++ .../ThreatIntelligence.json | 1097 +++++ .../ThreatIntelligenceCount.json | 348 ++ .../ThreatIntelligenceQuery.json | 583 +++ .../TriggeredAnalyticsRuleRuns.json | 354 ++ .../2024-10-01-preview/Watchlists.json | 745 +++ .../WorkspaceManagerAssignments.json | 737 +++ .../WorkspaceManagerConfigurations.json | 323 ++ .../WorkspaceManagerGroups.json | 318 ++ .../WorkspaceManagerMembers.json | 310 ++ .../2024-10-01-preview/common/AlertTypes.json | 81 + .../common/ContentCommonTypes.json | 662 +++ .../common/EntityTypes.json | 2550 ++++++++++ .../common/IncidentTypes.json | 246 + .../common/RelationTypes.json | 98 + .../common/ThreatIntelligenceTypes.json | 48 + .../dataConnectorDefinitions.json | 706 +++ .../2024-10-01-preview/dataConnectors.json | 4175 +++++++++++++++++ .../actions/CreateActionOfAlertRule.json | 43 + .../actions/DeleteActionOfAlertRule.json | 14 + .../actions/GetActionOfAlertRuleById.json | 24 + .../actions/GetAllActionsByAlertRule.json | 27 + .../GetAlertRuleTemplateById.json | 53 + .../GetAlertRuleTemplates.json | 238 + .../alertRules/CreateFusionAlertRule.json | 845 ++++ ...nAlertRuleWithFusionScenarioExclusion.json | 851 ++++ ...softSecurityIncidentCreationAlertRule.json | 58 + .../alertRules/CreateNrtAlertRule.json | 136 + .../alertRules/CreateScheduledAlertRule.json | 270 ++ .../examples/alertRules/DeleteAlertRule.json | 13 + .../examples/alertRules/GetAllAlertRules.json | 412 ++ .../alertRules/GetFusionAlertRule.json | 310 ++ ...softSecurityIncidentCreationAlertRule.json | 30 + .../examples/alertRules/GetNrtAlertRule.json | 55 + .../alertRules/GetScheduledAlertRule.json | 95 + .../AutomationRules_CreateOrUpdate.json | 195 + .../AutomationRules_Delete.json | 17 + .../automationRules/AutomationRules_Get.json | 73 + .../automationRules/AutomationRules_List.json | 76 + .../GetAllBillingStatistics.json | 26 + .../GetBillingStatistic.json | 23 + .../examples/bookmarks/CreateBookmark.json | 143 + .../examples/bookmarks/DeleteBookmark.json | 13 + .../examples/bookmarks/GetBookmarkById.json | 64 + .../examples/bookmarks/GetBookmarks.json | 67 + .../bookmarks/expand/PostExpandBookmark.json | 43 + .../relations/CreateBookmarkRelation.json | 43 + .../relations/DeleteBookmarkRelation.json | 14 + .../relations/GetAllBookmarkRelations.json | 28 + .../relations/GetBookmarkRelationByName.json | 25 + .../BusinessApplicationAgent_Get.json | 38 + ...inessApplicationAgents_CreateOrUpdate.json | 68 + .../BusinessApplicationAgents_Delete.json | 13 + .../BusinessApplicationAgents_List.json | 42 + .../actions/ListActions.json | 40 + .../actions/ReportActionStatus.json | 18 + .../actions/UndoAction.json | 16 + .../systems/Systems_CreateOrUpdate.json | 153 + .../systems/Systems_Delete.json | 14 + .../systems/Systems_Get.json | 61 + .../systems/Systems_List.json | 64 + .../contentPackages/GetPackageById.json | 34 + .../examples/contentPackages/GetPackages.json | 39 + .../GetProductPackageById.json | 76 + .../contentPackages/GetProductPackages.json | 78 + .../contentPackages/InstallPackage.json | 151 + .../contentPackages/UninstallPackage.json | 13 + .../contentTemplates/DeleteTemplate.json | 13 + .../GetProductTemplateById.json | 43 + .../contentTemplates/GetProductTemplates.json | 45 + .../contentTemplates/GetTemplateById.json | 41 + .../contentTemplates/GetTemplates.json | 43 + .../contentTemplates/InstallTemplate.json | 228 + ...teCustomizableDataConnectorDefinition.json | 258 + .../DeleteDataConnectorDefinitionById.json | 13 + ...stomizableDataConnectorDefinitionById.json | 95 + .../GetDataConnectorDefinitions.json | 94 + ...CheckRequirementsAzureActiveDirectory.json | 22 + ...tsAzureActiveDirectoryNoAuthorization.json | 22 + ...irementsAzureActiveDirectoryNoLicense.json | 22 + .../CheckRequirementsAzureSecurityCenter.json | 22 + .../CheckRequirementsDynamics365.json | 22 + .../dataConnectors/CheckRequirementsIoT.json | 22 + .../CheckRequirementsMdatp.json | 22 + ...RequirementsMicrosoftCloudAppSecurity.json | 22 + ...MicrosoftPurviewInformationProtection.json | 22 + ...quirementsMicrosoftThreatIntelligence.json | 22 + ...RequirementsMicrosoftThreatProtection.json | 22 + .../CheckRequirementsOffice365Project.json | 22 + .../CheckRequirementsOfficeATP.json | 22 + .../CheckRequirementsOfficeIRM.json | 22 + .../CheckRequirementsOfficePowerBI.json | 22 + .../CheckRequirementsPurviewAudit.json | 22 + .../CheckRequirementsThreatIntelligence.json | 22 + ...ckRequirementsThreatIntelligenceTaxii.json | 22 + .../dataConnectors/ConnectAPIPolling.json | 24 + .../ConnectAPIPollingV2Logs.json | 27 + .../dataConnectors/CreateAPIPolling.json | 368 ++ .../CreateDynamics365DataConnetor.json | 57 + .../dataConnectors/CreateGenericUI.json | 437 ++ .../CreateGoogleCloudPlatform.json | 92 + ...viewInformationProtectionDataConnetor.json | 57 + ...rosoftThreatIntelligenceDataConnector.json | 59 + ...MicrosoftThreatProtectionDataConnetor.json | 81 + .../CreateOffice365ProjectDataConnetor.json | 57 + .../CreateOfficeDataConnetor.json | 75 + .../CreateOfficePowerBIDataConnector.json | 57 + .../CreatePurviewAuditDataConnector.json | 70 + ...CreateThreatIntelligenceDataConnector.json | 59 + ...eThreatIntelligenceTaxiiDataConnector.json | 81 + .../dataConnectors/DeleteAPIPolling.json | 13 + .../dataConnectors/DeleteGenericUI.json | 13 + .../DeleteGoogleCloudPlatform.json | 13 + ...viewInformationProtectionDataConnetor.json | 13 + ...rosoftThreatIntelligenceDataConnector.json | 13 + .../DeleteOffice365ProjectDataConnetor.json | 13 + .../DeleteOfficeDataConnetor.json | 13 + .../DeleteOfficePowerBIDataConnetor.json | 13 + .../DeletePurviewAuditDataConnector.json | 13 + .../dataConnectors/DisconnectAPIPolling.json | 13 + .../dataConnectors/GetAPIPolling.json | 133 + .../GetAmazonWebServicesCloudTrailById.json | 28 + .../GetAmazonWebServicesS3ById.json | 32 + .../GetAzureActiveDirectoryById.json | 28 + .../GetAzureAdvancedThreatProtectionById.json | 28 + .../GetAzureSecurityCenterById.json | 28 + .../dataConnectors/GetDataConnectors.json | 526 +++ .../GetDynamics365DataConnectorById.json | 28 + .../examples/dataConnectors/GetGenericUI.json | 156 + .../GetGoogleCloudPlatformById.json | 35 + .../examples/dataConnectors/GetIoTById.json | 28 + .../GetMicrosoftCloudAppSecurityById.json | 31 + ...tDefenderAdvancedThreatProtectionById.json | 28 + ...GetMicrosoftInsiderRiskManagementById.json | 28 + ...InformationProtectionDataConnetorById.json | 28 + .../GetMicrosoftThreatIntelligenceById.json | 29 + .../GetMicrosoftThreatProtectionById.json | 36 + ...Office365AdvancedThreatProtectionById.json | 28 + .../GetOffice365ProjectDataConnetorById.json | 28 + .../GetOfficeDataConnetorById.json | 34 + .../GetOfficePowerBIDataConnetorById.json | 28 + .../GetPurviewAuditDataConnectorById.json | 31 + .../dataConnectors/GetRestApiPollerById.json | 59 + .../GetThreatIntelligenceById.json | 29 + .../GetThreatIntelligenceTaxiiById.json | 36 + .../GetGeodataWithWorkspaceByIp.json | 35 + .../GetWhoisWithWorkspaceByDomainName.json | 91 + .../entities/GetAccountEntityById.json | 32 + .../entities/GetAzureResourceEntityById.json | 24 + .../GetCloudApplicationEntityById.json | 25 + .../examples/entities/GetDnsEntityById.json | 26 + .../examples/entities/GetEntities.json | 63 + .../examples/entities/GetFileEntityById.json | 24 + .../entities/GetFileHashEntityById.json | 24 + .../examples/entities/GetHostEntityById.json | 31 + .../entities/GetIoTDeviceEntityById.json | 45 + .../examples/entities/GetIpEntityById.json | 23 + .../entities/GetMailClusterEntityById.json | 44 + .../entities/GetMailMessageEntityById.json | 48 + .../entities/GetMailboxEntityById.json | 26 + .../entities/GetMalwareEntityById.json | 24 + .../entities/GetProcessEntityById.json | 25 + .../examples/entities/GetQueries.json | 456 ++ .../entities/GetRegistryKeyEntityById.json | 24 + .../entities/GetRegistryValueEntityById.json | 26 + .../entities/GetSecurityAlertEntityById.json | 51 + .../entities/GetSecurityGroupEntityById.json | 25 + .../entities/GetSubmissionMailEntityById.json | 29 + .../examples/entities/GetUrlEntityById.json | 23 + .../entities/expand/PostExpandEntity.json | 52 + .../entities/insights/PostGetInsights.json | 100 + .../relations/GetAllEntityRelations.json | 28 + .../relations/GetEntityRelationByName.json | 25 + .../entities/timeline/PostTimelineEntity.json | 92 + .../CreateEntityQueryActivity.json | 133 + .../entityQueries/DeleteEntityQuery.json | 13 + .../GetActivityEntityQueryById.json | 54 + .../entityQueries/GetEntityQueries.json | 59 + .../GetExpansionEntityQueryById.json | 34 + .../GetActivityEntityQueryTemplateById.json | 57 + .../GetEntityQueryTemplates.json | 105 + .../fileImports/CreateFileImport.json | 75 + .../fileImports/DeleteFileImport.json | 41 + .../fileImports/GetFileImportById.json | 37 + .../examples/fileImports/GetFileImports.json | 42 + .../examples/hunts/CreateHunt.json | 100 + .../examples/hunts/CreateHuntComment.json | 56 + .../examples/hunts/CreateHuntRelation.json | 53 + .../examples/hunts/DeleteHunt.json | 14 + .../examples/hunts/DeleteHuntComment.json | 15 + .../examples/hunts/DeleteHuntRelation.json | 15 + .../examples/hunts/GetHuntById.json | 43 + .../examples/hunts/GetHuntCommentById.json | 32 + .../examples/hunts/GetHuntComments.json | 27 + .../examples/hunts/GetHuntRelationById.json | 29 + .../examples/hunts/GetHuntRelations.json | 32 + .../examples/hunts/GetHunts.json | 46 + .../IncidentAlerts/Incidents_ListAlerts.json | 50 + .../Incidents_ListBookmarks.json | 47 + .../IncidentComments_CreateOrUpdate.json | 55 + .../IncidentComments_Delete.json | 14 + .../IncidentComments_Get.json | 31 + .../IncidentComments_List.json | 34 + .../Incidents_ListEntities.json | 34 + .../IncidentTasks_CreateOrUpdate.json | 73 + .../IncidentTasks/IncidentTasks_Delete.json | 14 + .../IncidentTasks/IncidentTasks_Get.json | 39 + .../IncidentTasks/IncidentTasks_List.json | 42 + .../IncidentTeam/Incidents_CreateTeam.json | 26 + .../incidents/Incidents_CreateOrUpdate.json | 136 + .../examples/incidents/Incidents_Delete.json | 13 + .../examples/incidents/Incidents_Get.json | 63 + .../examples/incidents/Incidents_List.json | 68 + .../relations/CreateIncidentRelation.json | 43 + .../relations/DeleteIncidentRelation.json | 14 + .../relations/GetAllIncidentRelations.json | 40 + .../relations/GetIncidentRelationByName.json | 25 + .../manualTrigger/Entities_RunPlaybook.json | 17 + .../manualTrigger/Incidents_RunPlaybook.json | 18 + .../examples/metadata/DeleteMetadata.json | 13 + .../examples/metadata/GetAllMetadata.json | 64 + .../metadata/GetAllMetadataOData.json | 52 + .../examples/metadata/GetMetadata.json | 104 + .../examples/metadata/PatchMetadata.json | 35 + .../examples/metadata/PutMetadata.json | 286 ++ .../examples/metadata/PutMetadataMinimal.json | 40 + .../officeConsents/DeleteOfficeConsents.json | 13 + .../officeConsents/GetOfficeConsents.json | 25 + .../officeConsents/GetOfficeConsentsById.json | 22 + .../CreateSentinelOnboardingState.json | 36 + .../DeleteSentinelOnboardingState.json | 13 + .../GetAllSentinelOnboardingStates.json | 24 + .../GetSentinelOnboardingState.json | 21 + .../examples/operations/ListOperations.json | 563 +++ .../recommendations/GetRecommendation.json | 42 + .../recommendations/GetRecommendations.json | 45 + .../recommendations/PatchRecommendation.json | 47 + .../ReevaluateRecommendation.json | 21 + .../repositories/GetRepositories.json | 37 + ...eateAnomalySecurityMLAnalyticsSetting.json | 245 + .../DeleteSecurityMLAnalyticsSetting.json | 13 + .../GetAllSecurityMLAnalyticsSettings.json | 94 + .../GetAnomalySecurityMLAnalyticsSetting.json | 91 + .../settings/DeleteEyesOnSetting.json | 13 + .../examples/settings/GetAllSettings.json | 25 + .../examples/settings/GetEyesOnSetting.json | 22 + .../settings/UpdateEyesOnSetting.json | 40 + .../sourcecontrols/CreateSourceControl.json | 162 + .../sourcecontrols/DeleteSourceControl.json | 29 + .../sourcecontrols/GetSourceControlById.json | 75 + .../sourcecontrols/GetSourceControls.json | 78 + .../AppendTagsThreatIntelligence.json | 18 + .../CollectThreatIntelligenceMetrics.json | 43 + .../CreateThreatIntelligence.json | 100 + .../DeleteThreatIntelligence.json | 13 + .../GetThreatIntelligence.json | 76 + .../GetThreatIntelligenceById.json | 43 + .../PostThreatIntelligenceCount.json | 30 + .../PostThreatIntelligenceQuery.json | 122 + .../QueryThreatIntelligence.json | 107 + .../ReplaceTagsThreatIntelligence.json | 52 + .../UpdateThreatIntelligence.json | 101 + .../triggerRuleRun_Post.json | 23 + .../triggeredAnalyticsRuleRun_Get.json | 29 + .../triggeredAnalyticsRuleRuns_Get.json | 48 + .../examples/watchlists/CreateWatchlist.json | 88 + .../CreateWatchlistAndWatchlistItems.json | 92 + .../watchlists/CreateWatchlistItem.json | 92 + .../examples/watchlists/DeleteWatchlist.json | 18 + .../watchlists/DeleteWatchlistItem.json | 15 + .../watchlists/GetWatchlistByAlias.json | 50 + .../watchlists/GetWatchlistItemById.json | 47 + .../watchlists/GetWatchlistItems.json | 50 + .../examples/watchlists/GetWatchlists.json | 53 + .../CreateJob.json | 24 + ...ateOrUpdateWorkspaceManagerAssignment.json | 62 + .../DeleteJob.json | 14 + .../DeleteWorkspaceManagerAssignment.json | 13 + .../GetAllJobs.json | 46 + .../GetAllWorkspaceManagerAssignments.json | 35 + .../workspaceManagerAssignments/GetJob.json | 43 + .../GetWorkspaceManagerAssignment.json | 32 + ...OrUpdateWorkspaceManagerConfiguration.json | 38 + .../DeleteWorkspaceManagerConfiguration.json | 13 + .../GetAllWorkspaceManagerConfigurations.json | 25 + .../GetWorkspaceManagerConfiguration.json | 22 + .../CreateOrUpdateWorkspaceManagerGroup.json | 53 + .../DeleteWorkspaceManagerGroup.json | 13 + .../GetAllWorkspaceManagerGroups.json | 30 + .../GetWorkspaceManagerGroup.json | 27 + .../CreateOrUpdateWorkspaceManagerMember.json | 41 + .../DeleteWorkspaceManagerMember.json | 13 + .../GetAllWorkspaceManagerMembers.json | 26 + .../GetWorkspaceManagerMember.json | 23 + .../2024-10-01-preview/operations.json | 138 + .../resource-manager/readme.md | 45 +- 318 files changed, 48836 insertions(+), 1 deletion(-) create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AlertRules.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AutomationRules.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BillingStatistics.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Bookmarks.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BusinessApplicationAgents.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentPackages.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductPackages.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EnrichmentWithWorkspace.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Entities.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueries.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueryTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/FileImports.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Hunts.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Incidents.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Metadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OfficeConsents.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OnboardingStates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Recommendations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SecurityMLAnalyticsSettings.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Settings.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SourceControls.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceCount.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceQuery.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/TriggeredAnalyticsRuleRuns.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Watchlists.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerAssignments.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerConfigurations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerGroups.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerMembers.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/AlertTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ContentCommonTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/EntityTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/IncidentTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/RelationTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ThreatIntelligenceTypes.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectorDefinitions.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectors.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/CreateActionOfAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/DeleteActionOfAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetActionOfAlertRuleById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetAllActionsByAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplateById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRuleWithFusionScenarioExclusion.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateMicrosoftSecurityIncidentCreationAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateNrtAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateScheduledAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/DeleteAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetAllAlertRules.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetFusionAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetMicrosoftSecurityIncidentCreationAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetNrtAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetScheduledAlertRule.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetAllBillingStatistics.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetBillingStatistic.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/CreateBookmark.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/DeleteBookmark.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarkById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarks.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/expand/PostExpandBookmark.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/CreateBookmarkRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/DeleteBookmarkRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetAllBookmarkRelations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetBookmarkRelationByName.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgent_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ListActions.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ReportActionStatus.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/UndoAction.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackageById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackages.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackageById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackages.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/InstallPackage.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/UninstallPackage.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/DeleteTemplate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplateById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplateById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/InstallTemplate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/CreateCustomizableDataConnectorDefinition.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/DeleteDataConnectorDefinitionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetCustomizableDataConnectorDefinitionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetDataConnectorDefinitions.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectory.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoAuthorization.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoLicense.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureSecurityCenter.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsDynamics365.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsIoT.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMdatp.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftCloudAppSecurity.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftPurviewInformationProtection.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatProtection.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOffice365Project.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeATP.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeIRM.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficePowerBI.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsPurviewAudit.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligenceTaxii.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPolling.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPollingV2Logs.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateAPIPolling.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateDynamics365DataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGenericUI.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGoogleCloudPlatform.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftPurviewInformationProtectionDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatProtectionDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOffice365ProjectDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficeDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficePowerBIDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreatePurviewAuditDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceTaxiiDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteAPIPolling.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGenericUI.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGoogleCloudPlatform.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftPurviewInformationProtectionDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOffice365ProjectDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficeDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeletePurviewAuditDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DisconnectAPIPolling.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAPIPolling.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesCloudTrailById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesS3ById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureActiveDirectoryById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureAdvancedThreatProtectionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureSecurityCenterById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDataConnectors.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDynamics365DataConnectorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGenericUI.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGoogleCloudPlatformById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetIoTById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftCloudAppSecurityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftDefenderAdvancedThreatProtectionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftInsiderRiskManagementById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftPurviewInformationProtectionDataConnetorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatProtectionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365AdvancedThreatProtectionById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365ProjectDataConnetorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficeDataConnetorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficePowerBIDataConnetorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetPurviewAuditDataConnectorById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetRestApiPollerById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceTaxiiById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetGeodataWithWorkspaceByIp.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetWhoisWithWorkspaceByDomainName.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAccountEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAzureResourceEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetCloudApplicationEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetDnsEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetEntities.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileHashEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetHostEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIoTDeviceEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIpEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailClusterEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailMessageEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailboxEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMalwareEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetProcessEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetQueries.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryKeyEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryValueEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityAlertEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityGroupEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSubmissionMailEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetUrlEntityById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/expand/PostExpandEntity.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/insights/PostGetInsights.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetAllEntityRelations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetEntityRelationByName.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/timeline/PostTimelineEntity.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/CreateEntityQueryActivity.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/DeleteEntityQuery.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetActivityEntityQueryById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetEntityQueries.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetExpansionEntityQueryById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetActivityEntityQueryTemplateById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetEntityQueryTemplates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/CreateFileImport.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/DeleteFileImport.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImportById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImports.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHunt.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntComment.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHunt.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntComment.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntCommentById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntComments.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelationById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHunts.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentAlerts/Incidents_ListAlerts.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentBookmarks/Incidents_ListBookmarks.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentEntities/Incidents_ListEntities.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTeam/Incidents_CreateTeam.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_CreateOrUpdate.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Delete.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_List.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/CreateIncidentRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/DeleteIncidentRelation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetAllIncidentRelations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetIncidentRelationByName.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Entities_RunPlaybook.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Incidents_RunPlaybook.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/DeleteMetadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadataOData.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetMetadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PatchMetadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadata.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadataMinimal.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/DeleteOfficeConsents.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsents.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsentsById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/CreateSentinelOnboardingState.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/DeleteSentinelOnboardingState.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetAllSentinelOnboardingStates.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetSentinelOnboardingState.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/operations/ListOperations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/PatchRecommendation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/ReevaluateRecommendation.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/repositories/GetRepositories.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/CreateAnomalySecurityMLAnalyticsSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/DeleteSecurityMLAnalyticsSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAllSecurityMLAnalyticsSettings.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAnomalySecurityMLAnalyticsSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/DeleteEyesOnSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetAllSettings.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetEyesOnSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/UpdateEyesOnSetting.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/CreateSourceControl.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/DeleteSourceControl.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControlById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControls.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/AppendTagsThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CollectThreatIntelligenceMetrics.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CreateThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/DeleteThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligenceById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceCount.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceQuery.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/QueryThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/ReplaceTagsThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/UpdateThreatIntelligence.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggerRuleRun_Post.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRun_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRuns_Get.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlist.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistAndWatchlistItems.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistItem.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlist.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlistItem.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistByAlias.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItemById.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItems.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlists.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateJob.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateOrUpdateWorkspaceManagerAssignment.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteJob.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteWorkspaceManagerAssignment.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllJobs.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllWorkspaceManagerAssignments.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetJob.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetWorkspaceManagerAssignment.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/CreateOrUpdateWorkspaceManagerConfiguration.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/DeleteWorkspaceManagerConfiguration.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetAllWorkspaceManagerConfigurations.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetWorkspaceManagerConfiguration.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/CreateOrUpdateWorkspaceManagerGroup.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/DeleteWorkspaceManagerGroup.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetAllWorkspaceManagerGroups.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetWorkspaceManagerGroup.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/CreateOrUpdateWorkspaceManagerMember.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/DeleteWorkspaceManagerMember.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetAllWorkspaceManagerMembers.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetWorkspaceManagerMember.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/operations.json diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AlertRules.json new file mode 100644 index 000000000000..007f57c6ce52 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AlertRules.json @@ -0,0 +1,2600 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules": { + "get": { + "x-ms-examples": { + "Get all alert rules.": { + "$ref": "./examples/alertRules/GetAllAlertRules.json" + } + }, + "tags": [ + "Alert Rules" + ], + "description": "Gets all alert rules.", + "operationId": "AlertRules_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AlertRulesList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}": { + "get": { + "x-ms-examples": { + "Get a Scheduled alert rule.": { + "$ref": "./examples/alertRules/GetScheduledAlertRule.json" + }, + "Get an Nrt alert rule.": { + "$ref": "./examples/alertRules/GetNrtAlertRule.json" + }, + "Get a Fusion alert rule.": { + "$ref": "./examples/alertRules/GetFusionAlertRule.json" + }, + "Get a MicrosoftSecurityIncidentCreation rule.": { + "$ref": "./examples/alertRules/GetMicrosoftSecurityIncidentCreationAlertRule.json" + } + }, + "tags": [ + "Alert Rules" + ], + "description": "Gets the alert rule.", + "operationId": "AlertRules_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AlertRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a Scheduled alert rule.": { + "$ref": "./examples/alertRules/CreateScheduledAlertRule.json" + }, + "Creates or updates a Nrt alert rule.": { + "$ref": "./examples/alertRules/CreateNrtAlertRule.json" + }, + "Creates or updates a Fusion alert rule.": { + "$ref": "./examples/alertRules/CreateFusionAlertRule.json" + }, + "Creates or updates a Fusion alert rule with scenario exclusion pattern.": { + "$ref": "./examples/alertRules/CreateFusionAlertRuleWithFusionScenarioExclusion.json" + }, + "Creates or updates a MicrosoftSecurityIncidentCreation rule.": { + "$ref": "./examples/alertRules/CreateMicrosoftSecurityIncidentCreationAlertRule.json" + } + }, + "tags": [ + "Alert Rules" + ], + "description": "Creates or updates the alert rule.", + "operationId": "AlertRules_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + }, + { + "$ref": "#/parameters/AlertRule" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AlertRule" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/AlertRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete an alert rule.": { + "$ref": "./examples/alertRules/DeleteAlertRule.json" + } + }, + "tags": [ + "Alert Rules" + ], + "description": "Delete the alert rule.", + "operationId": "AlertRules_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}/actions": { + "get": { + "x-ms-examples": { + "Get all actions of alert rule.": { + "$ref": "./examples/actions/GetAllActionsByAlertRule.json" + } + }, + "tags": [ + "Actions" + ], + "description": "Gets all actions of alert rule.", + "operationId": "Actions_ListByAlertRule", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ActionsList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}/actions/{actionId}": { + "get": { + "x-ms-examples": { + "Get an action of alert rule.": { + "$ref": "./examples/actions/GetActionOfAlertRuleById.json" + } + }, + "tags": [ + "Actions" + ], + "description": "Gets the action of alert rule.", + "operationId": "Actions_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + }, + { + "$ref": "#/parameters/ActionId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ActionResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates an action of alert rule.": { + "$ref": "./examples/actions/CreateActionOfAlertRule.json" + } + }, + "tags": [ + "Actions" + ], + "description": "Creates or updates the action of alert rule.", + "operationId": "Actions_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + }, + { + "$ref": "#/parameters/ActionId" + }, + { + "$ref": "#/parameters/Action" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ActionResponse" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ActionResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete an action of alert rule.": { + "$ref": "./examples/actions/DeleteActionOfAlertRule.json" + } + }, + "tags": [ + "Actions" + ], + "description": "Delete the action of alert rule.", + "operationId": "Actions_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + }, + { + "$ref": "#/parameters/ActionId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRuleTemplates": { + "get": { + "x-ms-examples": { + "Get all alert rule templates.": { + "$ref": "./examples/alertRuleTemplates/GetAlertRuleTemplates.json" + } + }, + "tags": [ + "Alert Rule Templates" + ], + "description": "Gets all alert rule templates.", + "operationId": "AlertRuleTemplates_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AlertRuleTemplatesList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRuleTemplates/{alertRuleTemplateId}": { + "get": { + "x-ms-examples": { + "Get alert rule template by Id.": { + "$ref": "./examples/alertRuleTemplates/GetAlertRuleTemplateById.json" + } + }, + "tags": [ + "Alert Rule Templates" + ], + "description": "Gets the alert rule template.", + "operationId": "AlertRuleTemplates_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/AlertRuleTemplateId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AlertRuleTemplate" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "Action": { + "description": "The action", + "in": "body", + "name": "action", + "required": true, + "schema": { + "$ref": "#/definitions/ActionRequest" + }, + "x-ms-parameter-location": "method" + }, + "ActionId": { + "description": "Action ID", + "in": "path", + "name": "actionId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "AlertRule": { + "description": "The alert rule", + "in": "body", + "name": "alertRule", + "required": true, + "schema": { + "$ref": "#/definitions/AlertRule" + }, + "x-ms-parameter-location": "method" + }, + "AlertRuleTemplateId": { + "description": "Alert rule template ID", + "in": "path", + "name": "alertRuleTemplateId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "RuleId": { + "description": "Alert rule ID", + "in": "path", + "name": "ruleId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "AlertRule": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Alert rule.", + "properties": { + "kind": { + "$ref": "#/definitions/AlertRuleKindEnum", + "description": "The kind of the alert rule" + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "AlertRuleKindEnum": { + "description": "The kind of the alert rule", + "enum": [ + "Scheduled", + "MicrosoftSecurityIncidentCreation", + "Fusion", + "MLBehaviorAnalytics", + "ThreatIntelligence", + "NRT" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AlertRuleKind", + "values": [ + { + "value": "Scheduled" + }, + { + "value": "MicrosoftSecurityIncidentCreation" + }, + { + "value": "Fusion" + }, + { + "value": "MLBehaviorAnalytics" + }, + { + "value": "ThreatIntelligence" + }, + { + "value": "NRT" + } + ] + } + }, + "AlertRuleTemplate": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "description": "Alert rule template.", + "discriminator": "kind", + "type": "object", + "properties": { + "kind": { + "$ref": "#/definitions/AlertRuleKindEnum", + "description": "The kind of the alert rule" + } + }, + "required": [ + "kind" + ] + }, + "AlertRuleTemplateDataSource": { + "description": "alert rule template data sources", + "properties": { + "connectorId": { + "description": "The connector id that provides the following data types", + "type": "string" + }, + "dataTypes": { + "description": "The data types used by the alert rule template", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AlertRuleTemplatePropertiesBase": { + "description": "Base alert rule template property bag.", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "the number of alert rules that were created by this template", + "type": "integer", + "format": "int32" + }, + "lastUpdatedDateUTC": { + "description": "The last time that this alert rule template has been updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "x-ms-identifiers": [ + "connectorId" + ], + "type": "array" + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status." + } + }, + "type": "object" + }, + "AlertRuleTemplateStatus": { + "description": "The alert rule template status.", + "enum": [ + "Installed", + "Available", + "NotAvailable" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "TemplateStatus", + "values": [ + { + "description": "Alert rule template installed. and can not use more then once", + "value": "Installed" + }, + { + "description": "Alert rule template is available.", + "value": "Available" + }, + { + "description": "Alert rule template is not available", + "value": "NotAvailable" + } + ] + } + }, + "AlertRuleTemplateWithMitreProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], + "description": "Alert rule template with MITRE property bag.", + "properties": { + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "QueryBasedAlertRuleTemplateProperties": { + "description": "Query based alert rule template base property bag.", + "properties": { + "query": { + "description": "The query that creates alerts for this rule.", + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + }, + "version": { + "description": "The version of this template - in format , where all are numbers. For example <1.0.2>.", + "type": "string" + }, + "customDetails": { + "description": "Dictionary of string key-value pairs of columns to be attached to the alert", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "entityMappings": { + "$ref": "#/definitions/EntityMappings", + "description": "Array of the entity mappings of the alert rule" + }, + "alertDetailsOverride": { + "type": "object", + "$ref": "#/definitions/AlertDetailsOverride", + "description": "The alert details override settings" + }, + "eventGroupingSettings": { + "$ref": "#/definitions/EventGroupingSettings", + "description": "The event grouping settings." + }, + "sentinelEntitiesMappings": { + "$ref": "#/definitions/SentinelEntitiesMappings", + "description": "Array of the sentinel entity mappings of the alert rule" + } + }, + "type": "object" + }, + "AlertRuleTemplatesList": { + "description": "List all the alert rule templates.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of alert rule templates.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of alert rule templates.", + "items": { + "$ref": "#/definitions/AlertRuleTemplate" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "AlertRuleTriggerOperator": { + "description": "The operation against the threshold that triggers alert rule.", + "enum": [ + "GreaterThan", + "LessThan", + "Equal", + "NotEqual" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": false, + "name": "TriggerOperator" + } + }, + "AlertRulesList": { + "description": "List all the alert rules.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of alert rules.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of alert rules.", + "items": { + "$ref": "#/definitions/AlertRule" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "MLBehaviorAnalyticsAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents MLBehaviorAnalytics alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/MLBehaviorAnalyticsAlertRuleProperties", + "description": "MLBehaviorAnalytics alert rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MLBehaviorAnalytics" + }, + "MLBehaviorAnalyticsAlertRuleProperties": { + "description": "MLBehaviorAnalytics alert rule base property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "readOnly": true, + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this alert rule has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule.", + "readOnly": true + }, + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "readOnly": true, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "required": [ + "alertRuleTemplateName", + "enabled" + ], + "type": "object" + }, + "MLBehaviorAnalyticsAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents MLBehaviorAnalytics alert rule template.", + "properties": { + "properties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplateWithMitreProperties" + } + ], + "description": "MLBehaviorAnalytics alert rule template properties.", + "properties": { + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + } + }, + "type": "object", + "required": [ + "displayName", + "description", + "status", + "severity", + "alertRulesCreatedByTemplateCount" + ], + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MLBehaviorAnalytics" + }, + "FusionAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents Fusion alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/FusionAlertRuleProperties", + "description": "Fusion alert rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Fusion" + }, + "FusionAlertRuleProperties": { + "description": "Fusion alert rule base property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "readOnly": true, + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "sourceSettings": { + "description": "Configuration for all supported source signals in fusion detection.", + "items": { + "$ref": "#/definitions/FusionSourceSettings" + }, + "x-ms-identifiers": [], + "type": "array" + }, + "scenarioExclusionPatterns": { + "description": "Configuration to exclude scenarios in fusion detection.", + "items": { + "$ref": "#/definitions/FusionScenarioExclusionPattern" + }, + "x-ms-identifiers": [], + "type": "array" + }, + "lastModifiedUtc": { + "description": "The last time that this alert has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule.", + "readOnly": true + }, + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "readOnly": true, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "required": [ + "alertRuleTemplateName", + "enabled" + ], + "type": "object" + }, + "FusionSourceSettings": { + "description": "Represents a supported source signal configuration in Fusion detection.", + "properties": { + "enabled": { + "description": "Determines whether this source signal is enabled or disabled in Fusion detection.", + "type": "boolean" + }, + "sourceName": { + "description": "Name of the Fusion source signal. Refer to Fusion alert rule template for supported values.", + "type": "string" + }, + "sourceSubTypes": { + "description": "Configuration for all source subtypes under this source signal consumed in fusion detection.", + "items": { + "$ref": "#/definitions/FusionSourceSubTypeSetting" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "required": [ + "enabled", + "sourceName" + ], + "type": "object" + }, + "FusionSourceSubTypeSetting": { + "description": "Represents a supported source subtype configuration under a source signal in Fusion detection.", + "properties": { + "enabled": { + "description": "Determines whether this source subtype under source signal is enabled or disabled in Fusion detection.", + "type": "boolean" + }, + "sourceSubTypeName": { + "description": "The Name of the source subtype under a given source signal in Fusion detection. Refer to Fusion alert rule template for supported values.", + "type": "string" + }, + "sourceSubTypeDisplayName": { + "description": "The display name of source subtype under a source signal consumed in Fusion detection.", + "type": "string", + "readOnly": true + }, + "severityFilters": { + "description": "Severity configuration for a source subtype consumed in fusion detection.", + "$ref": "#/definitions/FusionSubTypeSeverityFilter", + "type": "object" + } + }, + "required": [ + "enabled", + "sourceSubTypeName", + "severityFilters" + ], + "type": "object" + }, + "FusionSubTypeSeverityFilter": { + "description": "Represents severity configuration for a source subtype consumed in Fusion detection.", + "properties": { + "isSupported": { + "description": "Determines whether this source subtype supports severity configuration or not.", + "type": "boolean", + "readOnly": true + }, + "filters": { + "description": "Individual Severity configuration settings for a given source subtype consumed in Fusion detection.", + "items": { + "$ref": "#/definitions/FusionSubTypeSeverityFiltersItem" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "type": "object" + }, + "FusionSubTypeSeverityFiltersItem": { + "description": "Represents a Severity filter setting for a given source subtype consumed in Fusion detection.", + "properties": { + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The Severity for a given source subtype consumed in Fusion detection." + }, + "enabled": { + "description": "Determines whether this severity is enabled or disabled for this source subtype consumed in Fusion detection.", + "type": "boolean" + } + }, + "required": [ + "severity", + "enabled" + ], + "type": "object" + }, + "FusionScenarioExclusionPattern": { + "description": "Represents a Fusion scenario exclusion patterns in Fusion detection.", + "properties": { + "exclusionPattern": { + "description": "Scenario exclusion pattern.", + "type": "string" + }, + "dateAddedInUTC": { + "description": "DateTime when scenario exclusion pattern is added in UTC.", + "type": "string" + } + }, + "required": [ + "exclusionPattern", + "dateAddedInUTC" + ], + "type": "object" + }, + "FusionAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents Fusion alert rule template.", + "properties": { + "properties": { + "$ref": "#/definitions/FusionAlertRuleTemplateProperties", + "description": "Fusion alert rule template properties", + "required": [ + "displayName", + "description", + "status", + "severity", + "alertRulesCreatedByTemplateCount" + ], + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Fusion" + }, + "FusionAlertRuleTemplateProperties": { + "description": "Fusion alert rule template properties", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "the number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The time that this alert rule template was last updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data connectors for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status.", + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + }, + "tactics": { + "description": "The tactics of the alert rule template", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceSettings": { + "description": "All supported source signal configurations consumed in fusion detection.", + "items": { + "$ref": "#/definitions/FusionTemplateSourceSetting" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "type": "object", + "x-ms-client-flatten": true + }, + "FusionTemplateSourceSetting": { + "description": "Represents a source signal consumed in Fusion detection.", + "properties": { + "sourceName": { + "description": "The name of a source signal consumed in Fusion detection.", + "type": "string" + }, + "sourceSubTypes": { + "description": "All supported source subtypes under this source signal consumed in fusion detection.", + "items": { + "$ref": "#/definitions/FusionTemplateSourceSubType" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "required": [ + "sourceName" + ], + "type": "object" + }, + "FusionTemplateSourceSubType": { + "description": "Represents a source subtype under a source signal consumed in Fusion detection.", + "properties": { + "sourceSubTypeName": { + "description": "The name of source subtype under a source signal consumed in Fusion detection.", + "type": "string" + }, + "sourceSubTypeDisplayName": { + "description": "The display name of source subtype under a source signal consumed in Fusion detection.", + "type": "string", + "readOnly": true + }, + "severityFilter": { + "description": "Severity configuration available for a source subtype consumed in fusion detection.", + "$ref": "#/definitions/FusionTemplateSubTypeSeverityFilter", + "type": "object" + } + }, + "required": [ + "sourceSubTypeName", + "severityFilter" + ], + "type": "object" + }, + "FusionTemplateSubTypeSeverityFilter": { + "description": "Represents severity configurations available for a source subtype consumed in Fusion detection.", + "properties": { + "isSupported": { + "description": "Determines whether severity configuration is supported for this source subtype consumed in Fusion detection.", + "type": "boolean" + }, + "severityFilters": { + "description": "List of all supported severities for this source subtype consumed in Fusion detection.", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "required": [ + "isSupported" + ], + "type": "object" + }, + "ThreatIntelligenceAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents Threat Intelligence alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/ThreatIntelligenceAlertRuleProperties", + "description": "Threat Intelligence alert rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligence" + }, + "ThreatIntelligenceAlertRuleProperties": { + "description": "Threat Intelligence alert rule base property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "readOnly": true, + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this alert has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule.", + "readOnly": true + }, + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "readOnly": true, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "required": [ + "alertRuleTemplateName", + "enabled" + ], + "type": "object" + }, + "ThreatIntelligenceAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents Threat Intelligence alert rule template.", + "properties": { + "properties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplateWithMitreProperties" + } + ], + "description": "Threat Intelligence alert rule template properties", + "properties": { + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + } + }, + "required": [ + "displayName", + "description", + "status", + "severity", + "alertRulesCreatedByTemplateCount" + ], + "type": "object", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligence" + }, + "MicrosoftSecurityIncidentCreationAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents MicrosoftSecurityIncidentCreation rule.", + "properties": { + "properties": { + "$ref": "#/definitions/MicrosoftSecurityIncidentCreationAlertRuleProperties", + "description": "MicrosoftSecurityIncidentCreation rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" + }, + "MicrosoftSecurityIncidentCreationAlertRuleCommonProperties": { + "description": "MicrosoftSecurityIncidentCreation rule common property bag.", + "properties": { + "displayNamesFilter": { + "description": "the alerts' displayNames on which the cases will be generated", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayNamesExcludeFilter": { + "description": "the alerts' displayNames on which the cases will not be generated", + "items": { + "type": "string" + }, + "type": "array" + }, + "productFilter": { + "$ref": "#/definitions/MicrosoftSecurityProductName", + "description": "The alerts' productName on which the cases will be generated" + }, + "severitiesFilter": { + "description": "the alerts' severities on which the cases will be generated", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum" + }, + "type": "array" + } + }, + "required": [ + "productFilter" + ], + "type": "object" + }, + "MicrosoftSecurityProductName": { + "description": "The alerts' productName on which the cases will be generated", + "enum": [ + "Microsoft Cloud App Security", + "Azure Security Center", + "Azure Advanced Threat Protection", + "Azure Active Directory Identity Protection", + "Azure Security Center for IoT", + "Office 365 Advanced Threat Protection", + "Microsoft Defender Advanced Threat Protection" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "MicrosoftSecurityProductName" + } + }, + "MicrosoftSecurityIncidentCreationAlertRuleProperties": { + "allOf": [ + { + "$ref": "#/definitions/MicrosoftSecurityIncidentCreationAlertRuleCommonProperties" + } + ], + "description": "MicrosoftSecurityIncidentCreation rule property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "type": "string" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this alert has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "displayName", + "enabled", + "productFilter" + ], + "type": "object" + }, + "MicrosoftSecurityIncidentCreationAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents MicrosoftSecurityIncidentCreation rule template.", + "properties": { + "properties": { + "$ref": "#/definitions/MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties", + "description": "MicrosoftSecurityIncidentCreation rule template properties", + "required": [ + "displayName", + "description", + "createdDateUTC", + "status", + "alertRulesCreatedByTemplateCount", + "productFilter" + ], + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" + }, + "MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], + "description": "MicrosoftSecurityIncidentCreation rule template properties", + "properties": { + "displayNamesFilter": { + "description": "the alerts' displayNames on which the cases will be generated", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayNamesExcludeFilter": { + "description": "the alerts' displayNames on which the cases will not be generated", + "items": { + "type": "string" + }, + "type": "array" + }, + "productFilter": { + "$ref": "#/definitions/MicrosoftSecurityProductName", + "description": "The alerts' productName on which the cases will be generated" + }, + "severitiesFilter": { + "description": "the alerts' severities on which the cases will be generated", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum" + }, + "type": "array" + } + }, + "type": "object", + "x-ms-client-flatten": true + }, + "ScheduledAlertRuleProperties": { + "allOf": [ + { + "$ref": "#/definitions/ScheduledAlertRuleCommonProperties" + } + ], + "description": "Scheduled alert rule base property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "templateVersion": { + "description": "The version of the alert rule template used to create this rule - in format , where all are numbers, for example 0 <1.0.2>", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "type": "string" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this alert rule has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "suppressionDuration": { + "description": "The suppression (in ISO 8601 duration format) to wait since last time this alert rule been triggered.", + "format": "duration", + "type": "string" + }, + "suppressionEnabled": { + "description": "Determines whether the suppression for this alert rule is enabled or disabled.", + "type": "boolean" + }, + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "incidentConfiguration": { + "$ref": "#/definitions/IncidentConfiguration", + "description": "The settings of the incidents that created from alerts triggered by this analytics rule" + } + }, + "required": [ + "displayName", + "enabled", + "severity", + "query", + "queryFrequency", + "queryPeriod", + "triggerOperator", + "triggerThreshold", + "suppressionEnabled", + "suppressionDuration" + ], + "type": "object", + "x-ms-client-flatten": true + }, + "NrtAlertRuleProperties": { + "description": "Nrt alert rule base property bag.", + "properties": { + "alertRuleTemplateName": { + "description": "The Name of the alert rule template used to create this rule.", + "type": "string" + }, + "templateVersion": { + "description": "The version of the alert rule template used to create this rule - in format , where all are numbers, for example 0 <1.0.2>", + "type": "string" + }, + "description": { + "description": "The description of the alert rule.", + "type": "string" + }, + "query": { + "description": "The query that creates alerts for this rule.", + "type": "string" + }, + "tactics": { + "description": "The tactics of the alert rule", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array" + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "The display name for alerts created by this alert rule.", + "type": "string" + }, + "enabled": { + "description": "Determines whether this alert rule is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this alert rule has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "suppressionDuration": { + "description": "The suppression (in ISO 8601 duration format) to wait since last time this alert rule been triggered.", + "format": "duration", + "type": "string" + }, + "suppressionEnabled": { + "description": "Determines whether the suppression for this alert rule is enabled or disabled.", + "type": "boolean" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + }, + "incidentConfiguration": { + "$ref": "#/definitions/IncidentConfiguration", + "description": "The settings of the incidents that created from alerts triggered by this analytics rule" + }, + "customDetails": { + "description": "Dictionary of string key-value pairs of columns to be attached to the alert", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "entityMappings": { + "$ref": "#/definitions/EntityMappings", + "description": "Array of the entity mappings of the alert rule" + }, + "alertDetailsOverride": { + "type": "object", + "$ref": "#/definitions/AlertDetailsOverride", + "description": "The alert details override settings" + }, + "eventGroupingSettings": { + "$ref": "#/definitions/EventGroupingSettings", + "description": "The event grouping settings." + }, + "sentinelEntitiesMappings": { + "$ref": "#/definitions/SentinelEntitiesMappings", + "description": "Array of the sentinel entity mappings of the alert rule" + } + }, + "required": [ + "displayName", + "enabled", + "severity", + "query", + "suppressionEnabled", + "suppressionDuration" + ], + "type": "object", + "x-ms-client-flatten": true + }, + "ScheduledAlertRuleTemplateProperties": { + "description": "Scheduled alert rule template properties", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "the number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The time that this alert rule template was last updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data connectors for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status.", + "type": "string" + }, + "query": { + "description": "The query that creates alerts for this rule.", + "type": "string" + }, + "queryFrequency": { + "description": "The frequency (in ISO 8601 duration format) for this alert rule to run.", + "format": "duration", + "type": "string" + }, + "queryPeriod": { + "description": "The period (in ISO 8601 duration format) that this alert rule looks at.", + "format": "duration", + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + }, + "triggerOperator": { + "$ref": "#/definitions/AlertRuleTriggerOperator", + "description": "The operation against the threshold that triggers alert rule." + }, + "triggerThreshold": { + "description": "The threshold triggers this alert rule.", + "format": "int32", + "type": "integer" + }, + "tactics": { + "description": "The tactics of the alert rule template", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "techniques": { + "description": "The techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "subTechniques": { + "description": "The sub-techniques of the alert rule", + "items": { + "type": "string" + }, + "type": "array" + }, + "version": { + "description": "The version of this template - in format , where all are numbers. For example <1.0.2>.", + "type": "string" + }, + "eventGroupingSettings": { + "$ref": "#/definitions/EventGroupingSettings", + "description": "The event grouping settings." + }, + "customDetails": { + "description": "Dictionary of string key-value pairs of columns to be attached to the alert", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "entityMappings": { + "$ref": "#/definitions/EntityMappings", + "description": "Array of the entity mappings of the alert rule" + }, + "alertDetailsOverride": { + "type": "object", + "$ref": "#/definitions/AlertDetailsOverride", + "description": "The alert details override settings" + }, + "sentinelEntitiesMappings": { + "$ref": "#/definitions/SentinelEntitiesMappings", + "description": "Array of the sentinel entity mappings of the alert rule" + } + }, + "type": "object" + }, + "ScheduledAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents scheduled alert rule template.", + "properties": { + "properties": { + "$ref": "#/definitions/ScheduledAlertRuleTemplateProperties", + "description": "Scheduled alert rule template properties", + "required": [ + "displayName", + "description", + "status", + "alertRulesCreatedByTemplateCount", + "severity", + "query", + "queryFrequency", + "queryPeriod", + "triggerOperator", + "triggerThreshold", + "version" + ], + "type": "object", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Scheduled" + }, + "NrtAlertRuleTemplate": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplate" + } + ], + "description": "Represents NRT alert rule template.", + "properties": { + "properties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplateWithMitreProperties" + }, + { + "$ref": "#/definitions/QueryBasedAlertRuleTemplateProperties" + } + ], + "description": "NRT alert rule template properties", + "required": [ + "displayName", + "description", + "status", + "alertRulesCreatedByTemplateCount", + "severity", + "query", + "version" + ], + "type": "object", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "NRT" + }, + "EventGroupingSettings": { + "description": "Event grouping settings property bag.", + "properties": { + "aggregationKind": { + "$ref": "#/definitions/EventGroupingAggregationKind" + } + }, + "type": "object" + }, + "EventGroupingAggregationKind": { + "description": "The event grouping aggregation kinds", + "enum": [ + "SingleAlert", + "AlertPerResult" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EventGroupingAggregationKind" + } + }, + "ScheduledAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents scheduled alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/ScheduledAlertRuleProperties", + "description": "Scheduled alert rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Scheduled" + }, + "NrtAlertRule": { + "allOf": [ + { + "$ref": "#/definitions/AlertRule" + } + ], + "description": "Represents NRT alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/NrtAlertRuleProperties", + "description": "NRT alert rule properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "NRT" + }, + "ScheduledAlertRuleCommonProperties": { + "description": "Scheduled alert rule template property bag.", + "properties": { + "query": { + "description": "The query that creates alerts for this rule.", + "type": "string" + }, + "queryFrequency": { + "description": "The frequency (in ISO 8601 duration format) for this alert rule to run.", + "format": "duration", + "type": "string" + }, + "queryPeriod": { + "description": "The period (in ISO 8601 duration format) that this alert rule looks at.", + "format": "duration", + "type": "string" + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity for alerts created by this alert rule." + }, + "triggerOperator": { + "$ref": "#/definitions/AlertRuleTriggerOperator", + "description": "The operation against the threshold that triggers alert rule." + }, + "triggerThreshold": { + "description": "The threshold triggers this alert rule.", + "type": "integer", + "format": "int32" + }, + "eventGroupingSettings": { + "$ref": "#/definitions/EventGroupingSettings", + "description": "The event grouping settings." + }, + "customDetails": { + "description": "Dictionary of string key-value pairs of columns to be attached to the alert", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "entityMappings": { + "$ref": "#/definitions/EntityMappings", + "description": "Array of the entity mappings of the alert rule" + }, + "alertDetailsOverride": { + "type": "object", + "$ref": "#/definitions/AlertDetailsOverride", + "description": "The alert details override settings" + }, + "sentinelEntitiesMappings": { + "$ref": "#/definitions/SentinelEntitiesMappings", + "description": "Array of the sentinel entity mappings of the alert rule" + } + }, + "type": "object" + }, + "EntityMappings": { + "description": "List of entity mappings of the alert rule", + "type": "array", + "items": { + "$ref": "#/definitions/EntityMapping" + }, + "x-ms-identifiers": [] + }, + "EntityMapping": { + "description": "Single entity mapping for the alert rule", + "properties": { + "entityType": { + "$ref": "#/definitions/EntityMappingType" + }, + "fieldMappings": { + "description": "array of field mappings for the given entity mapping", + "type": "array", + "items": { + "$ref": "#/definitions/FieldMapping" + }, + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "FieldMapping": { + "description": "A single field mapping of the mapped entity", + "properties": { + "identifier": { + "description": "the V3 identifier of the entity", + "type": "string" + }, + "columnName": { + "description": "the column name to be mapped to the identifier", + "type": "string" + } + }, + "type": "object" + }, + "SentinelEntitiesMappings": { + "description": "List of sentinel entity mappings of the alert rule", + "type": "array", + "items": { + "$ref": "#/definitions/SentinelEntityMapping" + }, + "x-ms-identifiers": [] + }, + "SentinelEntityMapping": { + "description": "A single sentinel entity mapping", + "properties": { + "columnName": { + "description": "the column name to be mapped to the SentinelEntities", + "type": "string" + } + }, + "type": "object" + }, + "AlertDetailsOverride": { + "description": "Settings for how to dynamically override alert static details", + "properties": { + "alertDisplayNameFormat": { + "description": "the format containing columns name(s) to override the alert name", + "type": "string" + }, + "alertDescriptionFormat": { + "description": "the format containing columns name(s) to override the alert description", + "type": "string" + }, + "alertTacticsColumnName": { + "description": "the column name to take the alert tactics from", + "type": "string" + }, + "alertSeverityColumnName": { + "description": "the column name to take the alert severity from", + "type": "string" + }, + "alertDynamicProperties": { + "description": "List of additional dynamic properties to override", + "type": "array", + "items": { + "$ref": "#/definitions/AlertPropertyMapping" + }, + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "AlertPropertyMapping": { + "description": "A single alert property mapping to override", + "properties": { + "alertProperty": { + "$ref": "#/definitions/AlertProperty" + }, + "value": { + "description": "the column name to use to override this property", + "type": "string" + } + }, + "type": "object" + }, + "IncidentConfiguration": { + "description": "Incident Configuration property bag.", + "properties": { + "createIncident": { + "description": "Create incidents from alerts triggered by this analytics rule", + "type": "boolean" + }, + "groupingConfiguration": { + "$ref": "#/definitions/GroupingConfiguration", + "description": "Set how the alerts that are triggered by this analytics rule, are grouped into incidents" + } + }, + "type": "object", + "required": [ + "createIncident" + ] + }, + "GroupingConfiguration": { + "description": "Grouping configuration property bag.", + "properties": { + "enabled": { + "description": "Grouping enabled", + "type": "boolean" + }, + "reopenClosedIncident": { + "description": "Re-open closed matching incidents", + "type": "boolean" + }, + "lookbackDuration": { + "description": "Limit the group to alerts created within the lookback duration (in ISO 8601 duration format)", + "format": "duration", + "type": "string" + }, + "matchingMethod": { + "description": "Grouping matching method. When method is Selected at least one of groupByEntities, groupByAlertDetails, groupByCustomDetails must be provided and not empty.", + "enum": [ + "AllEntities", + "AnyAlert", + "Selected" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "MatchingMethod", + "values": [ + { + "description": "Grouping alerts into a single incident if all the entities match", + "value": "AllEntities" + }, + { + "description": "Grouping any alerts triggered by this rule into a single incident", + "value": "AnyAlert" + }, + { + "description": "Grouping alerts into a single incident if the selected entities, custom details and alert details match", + "value": "Selected" + } + ] + } + }, + "groupByEntities": { + "description": "A list of entity types to group by (when matchingMethod is Selected). Only entities defined in the current alert rule may be used.", + "items": { + "$ref": "#/definitions/EntityMappingType" + }, + "type": "array" + }, + "groupByAlertDetails": { + "description": "A list of alert details to group by (when matchingMethod is Selected)", + "items": { + "description": "Alert detail", + "enum": [ + "DisplayName", + "Severity" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AlertDetail", + "values": [ + { + "description": "Alert display name", + "value": "DisplayName" + }, + { + "description": "Alert severity", + "value": "Severity" + } + ] + } + }, + "type": "array" + }, + "groupByCustomDetails": { + "description": "A list of custom details keys to group by (when matchingMethod is Selected). Only keys defined in the current alert rule may be used.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "enabled", + "reopenClosedIncident", + "lookbackDuration", + "matchingMethod" + ] + }, + "ActionRequest": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Action for alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/ActionRequestProperties", + "description": "Action properties for put request", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "ActionPropertiesBase": { + "description": "Action property bag base.", + "properties": { + "logicAppResourceId": { + "description": "Logic App Resource Id, /subscriptions/{my-subscription}/resourceGroups/{my-resource-group}/providers/Microsoft.Logic/workflows/{my-workflow-id}.", + "type": "string" + } + }, + "required": [ + "logicAppResourceId" + ], + "type": "object" + }, + "ActionRequestProperties": { + "allOf": [ + { + "$ref": "#/definitions/ActionPropertiesBase" + } + ], + "description": "Action property bag.", + "properties": { + "triggerUri": { + "description": "Logic App Callback URL for this specific workflow.", + "type": "string", + "x-ms-secret": true + } + }, + "required": [ + "triggerUri" + ], + "type": "object" + }, + "ActionResponse": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Action for alert rule.", + "properties": { + "properties": { + "$ref": "#/definitions/ActionResponseProperties", + "description": "Action properties for get request", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "ActionResponseProperties": { + "allOf": [ + { + "$ref": "#/definitions/ActionPropertiesBase" + } + ], + "description": "Action property bag.", + "properties": { + "workflowId": { + "description": "The name of the logic app's workflow.", + "type": "string" + } + }, + "type": "object" + }, + "ActionsList": { + "description": "List all the actions.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of actions.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of actions.", + "items": { + "$ref": "#/definitions/ActionResponse" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "EntityMappingType": { + "description": "The V3 type of the mapped entity", + "enum": [ + "Account", + "Host", + "IP", + "Malware", + "File", + "Process", + "CloudApplication", + "DNS", + "AzureResource", + "FileHash", + "RegistryKey", + "RegistryValue", + "SecurityGroup", + "URL", + "Mailbox", + "MailCluster", + "MailMessage", + "SubmissionMail" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityMappingType", + "values": [ + { + "description": "User account entity type", + "value": "Account" + }, + { + "description": "Host entity type", + "value": "Host" + }, + { + "description": "IP address entity type", + "value": "IP" + }, + { + "description": "Malware entity type", + "value": "Malware" + }, + { + "description": "System file entity type", + "value": "File" + }, + { + "description": "Process entity type", + "value": "Process" + }, + { + "description": "Cloud app entity type", + "value": "CloudApplication" + }, + { + "description": "DNS entity type", + "value": "DNS" + }, + { + "description": "Azure resource entity type", + "value": "AzureResource" + }, + { + "description": "File-hash entity type", + "value": "FileHash" + }, + { + "description": "Registry key entity type", + "value": "RegistryKey" + }, + { + "description": "Registry value entity type", + "value": "RegistryValue" + }, + { + "description": "Security group entity type", + "value": "SecurityGroup" + }, + { + "description": "URL entity type", + "value": "URL" + }, + { + "description": "Mailbox entity type", + "value": "Mailbox" + }, + { + "description": "Mail cluster entity type", + "value": "MailCluster" + }, + { + "description": "Mail message entity type", + "value": "MailMessage" + }, + { + "description": "Submission mail entity type", + "value": "SubmissionMail" + } + ] + } + }, + "AlertProperty": { + "description": "The V3 alert property", + "enum": [ + "AlertLink", + "ConfidenceLevel", + "ConfidenceScore", + "ExtendedLinks", + "ProductName", + "ProviderName", + "ProductComponentName", + "RemediationSteps", + "Techniques", + "SubTechniques" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AlertProperty", + "values": [ + { + "description": "Alert's link", + "value": "AlertLink" + }, + { + "description": "Confidence level property", + "value": "ConfidenceLevel" + }, + { + "description": "Confidence score", + "value": "ConfidenceScore" + }, + { + "description": "Extended links to the alert", + "value": "ExtendedLinks" + }, + { + "description": "Product name alert property", + "value": "ProductName" + }, + { + "description": "Provider name alert property", + "value": "ProviderName" + }, + { + "description": "Product component name alert property", + "value": "ProductComponentName" + }, + { + "description": "Remediation steps alert property", + "value": "RemediationSteps" + }, + { + "description": "Techniques alert property", + "value": "Techniques" + }, + { + "description": "SubTechniques alert property", + "value": "SubTechniques" + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AutomationRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AutomationRules.json new file mode 100644 index 000000000000..c731167cf1f7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/AutomationRules.json @@ -0,0 +1,1549 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/automationRules/{automationRuleId}": { + "get": { + "tags": [ + "automationRules" + ], + "description": "Gets the automation rule.", + "operationId": "AutomationRules_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/AutomationRuleId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/AutomationRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "AutomationRules_Get": { + "$ref": "./examples/automationRules/AutomationRules_Get.json" + } + } + }, + "put": { + "tags": [ + "automationRules" + ], + "description": "Creates or updates the automation rule.", + "operationId": "AutomationRules_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/AutomationRuleId" + }, + { + "in": "body", + "name": "automationRuleToUpsert", + "description": "The automation rule", + "schema": { + "$ref": "#/definitions/AutomationRule" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/AutomationRule" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/AutomationRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "AutomationRules_CreateOrUpdate": { + "$ref": "./examples/automationRules/AutomationRules_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "automationRules" + ], + "description": "Delete the automation rule.", + "operationId": "AutomationRules_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/AutomationRuleId" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "type": "object" + } + }, + "204": { + "description": "No Content", + "schema": { + "type": "object" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "AutomationRules_Delete": { + "$ref": "./examples/automationRules/AutomationRules_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/automationRules": { + "get": { + "tags": [ + "automationRules" + ], + "description": "Gets all automation rules.", + "operationId": "AutomationRules_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/AutomationRulesList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "AutomationRules_List": { + "$ref": "./examples/automationRules/AutomationRules_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityIdentifier}/runPlaybook": { + "post": { + "tags": [ + "manualTrigger" + ], + "description": "Triggers playbook on a specific entity.", + "operationId": "Entities_RunPlaybook", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "entityIdentifier", + "description": "Entity identifier.", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "requestBody", + "description": "Describes the request body for triggering a playbook on an entity.", + "schema": { + "$ref": "#/definitions/EntityManualTriggerRequestBody" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Entities_RunPlaybook": { + "$ref": "./examples/manualTrigger/Entities_RunPlaybook.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentIdentifier}/runPlaybook": { + "post": { + "tags": [ + "manualTrigger" + ], + "description": "Triggers playbook on a specific incident", + "operationId": "Incidents_RunPlaybook", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "incidentIdentifier", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "requestBody", + "schema": { + "$ref": "#/definitions/ManualTriggerRequestBody" + } + } + ], + "responses": { + "204": { + "description": "Success", + "schema": { + "type": "object" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_RunPlaybook": { + "$ref": "./examples/manualTrigger/Incidents_RunPlaybook.json" + } + } + } + } + }, + "definitions": { + "ActionType": { + "description": "The type of the automation rule action.", + "enum": [ + "ModifyProperties", + "RunPlaybook", + "AddIncidentTask" + ], + "type": "string", + "example": "ModifyProperties", + "x-ms-enum": { + "name": "ActionType", + "modelAsString": true, + "values": [ + { + "value": "ModifyProperties", + "description": "Modify an object's properties" + }, + { + "value": "RunPlaybook", + "description": "Run a playbook on an object" + }, + { + "value": "AddIncidentTask", + "description": "Add a task to an incident object" + } + ] + } + }, + "AddIncidentTaskActionProperties": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "title": { + "description": "The title of the task.", + "type": "string" + }, + "description": { + "description": "The description of the task.", + "type": "string" + } + } + }, + "AutomationRule": { + "required": [ + "properties" + ], + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/AutomationRuleProperties", + "x-ms-client-flatten": true + } + } + }, + "AutomationRuleAction": { + "description": "Describes an automation rule action.", + "required": [ + "actionType", + "order" + ], + "type": "object", + "properties": { + "order": { + "format": "int32", + "type": "integer" + }, + "actionType": { + "$ref": "#/definitions/ActionType" + } + }, + "discriminator": "actionType" + }, + "AutomationRuleAddIncidentTaskAction": { + "description": "Describes an automation rule action to add a task to an incident", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleAction" + } + ], + "properties": { + "actionConfiguration": { + "type": "object", + "$ref": "#/definitions/AddIncidentTaskActionProperties" + } + }, + "x-ms-discriminator-value": "AddIncidentTask", + "x-ms-client-flatten": true + }, + "AutomationRuleBooleanCondition": { + "type": "object", + "properties": { + "operator": { + "$ref": "#/definitions/AutomationRuleBooleanConditionSupportedOperator" + }, + "innerConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/AutomationRuleCondition" + }, + "x-ms-identifiers": [], + "minItems": 2, + "maxItems": 10 + } + } + }, + "AutomationRuleBooleanConditionSupportedOperator": { + "enum": [ + "And", + "Or" + ], + "type": "string", + "example": "And", + "x-ms-enum": { + "name": "AutomationRuleBooleanConditionSupportedOperator", + "modelAsString": true, + "values": [ + { + "value": "And", + "description": "Evaluates as true if all the item conditions are evaluated as true" + }, + { + "value": "Or", + "description": "Evaluates as true if at least one of the item conditions are evaluated as true" + } + ] + } + }, + "AutomationRuleCondition": { + "description": "Describes an automation rule condition.", + "required": [ + "conditionType" + ], + "type": "object", + "properties": { + "conditionType": { + "$ref": "#/definitions/ConditionType" + } + }, + "discriminator": "conditionType" + }, + "AutomationRuleModifyPropertiesAction": { + "description": "Describes an automation rule action to modify an object's properties", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleAction" + } + ], + "properties": { + "actionConfiguration": { + "type": "object", + "$ref": "#/definitions/IncidentPropertiesAction" + } + }, + "x-ms-discriminator-value": "ModifyProperties", + "x-ms-client-flatten": true + }, + "AutomationRuleProperties": { + "description": "Automation rule properties", + "required": [ + "actions", + "displayName", + "order", + "triggeringLogic" + ], + "type": "object", + "properties": { + "displayName": { + "description": "The display name of the automation rule.", + "type": "string", + "maxLength": 500 + }, + "order": { + "format": "int32", + "description": "The order of execution of the automation rule.", + "type": "integer", + "minimum": 1, + "maximum": 1000 + }, + "triggeringLogic": { + "$ref": "#/definitions/AutomationRuleTriggeringLogic" + }, + "actions": { + "description": "The actions to execute when the automation rule is triggered.", + "type": "array", + "items": { + "$ref": "#/definitions/AutomationRuleAction" + }, + "x-ms-identifiers": [], + "maxItems": 20 + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "description": "The last time the automation rule was updated.", + "type": "string", + "readOnly": true + }, + "createdTimeUtc": { + "format": "date-time", + "description": "The time the automation rule was created.", + "type": "string", + "readOnly": true + }, + "lastModifiedBy": { + "readOnly": true, + "$ref": "../../../common/2.0/types.json#/definitions/ClientInfo" + }, + "createdBy": { + "readOnly": true, + "$ref": "../../../common/2.0/types.json#/definitions/ClientInfo" + } + } + }, + "AutomationRulePropertyArrayChangedConditionSupportedArrayType": { + "enum": [ + "Alerts", + "Labels", + "Tactics", + "Comments" + ], + "type": "string", + "example": "Alerts", + "x-ms-enum": { + "name": "AutomationRulePropertyArrayChangedConditionSupportedArrayType", + "modelAsString": true, + "values": [ + { + "value": "Alerts", + "description": "Evaluate the condition on the alerts" + }, + { + "value": "Labels", + "description": "Evaluate the condition on the labels" + }, + { + "value": "Tactics", + "description": "Evaluate the condition on the tactics" + }, + { + "value": "Comments", + "description": "Evaluate the condition on the comments" + } + ] + } + }, + "AutomationRulePropertyArrayChangedConditionSupportedChangeType": { + "enum": [ + "Added" + ], + "type": "string", + "example": "Added", + "x-ms-enum": { + "name": "AutomationRulePropertyArrayChangedConditionSupportedChangeType", + "modelAsString": true, + "values": [ + { + "value": "Added", + "description": "Evaluate the condition on items added to the array" + } + ] + } + }, + "AutomationRulePropertyArrayChangedValuesCondition": { + "type": "object", + "properties": { + "arrayType": { + "$ref": "#/definitions/AutomationRulePropertyArrayChangedConditionSupportedArrayType" + }, + "changeType": { + "$ref": "#/definitions/AutomationRulePropertyArrayChangedConditionSupportedChangeType" + } + } + }, + "AutomationRulePropertyArrayConditionSupportedArrayConditionType": { + "enum": [ + "AnyItem", + "AllItems" + ], + "type": "string", + "example": "AnyItem", + "x-ms-enum": { + "name": "AutomationRulePropertyArrayConditionSupportedArrayConditionType", + "modelAsString": true, + "values": [ + { + "value": "AnyItem", + "description": "Evaluate the condition as true if any item fulfills it" + }, + { + "value": "AllItems", + "description": "Evaluate the condition as true if all the items fulfill it" + } + ] + } + }, + "AutomationRulePropertyArrayConditionSupportedArrayType": { + "enum": [ + "CustomDetails", + "CustomDetailValues", + "IncidentLabels" + ], + "type": "string", + "example": "CustomDetails", + "x-ms-enum": { + "name": "AutomationRulePropertyArrayConditionSupportedArrayType", + "modelAsString": true, + "values": [ + { + "value": "CustomDetails", + "description": "Evaluate the condition on the custom detail keys" + }, + { + "value": "CustomDetailValues", + "description": "Evaluate the condition on a custom detail's values" + }, + { + "value": "IncidentLabels", + "description": "Evaluate the condition on the incident labels" + } + ] + } + }, + "AutomationRulePropertyArrayValuesCondition": { + "type": "object", + "properties": { + "arrayType": { + "$ref": "#/definitions/AutomationRulePropertyArrayConditionSupportedArrayType" + }, + "arrayConditionType": { + "$ref": "#/definitions/AutomationRulePropertyArrayConditionSupportedArrayConditionType" + }, + "itemConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/AutomationRuleCondition" + }, + "x-ms-identifiers": [], + "maxItems": 10 + } + } + }, + "AutomationRulePropertyChangedConditionSupportedChangedType": { + "enum": [ + "ChangedFrom", + "ChangedTo" + ], + "type": "string", + "example": "ChangedFrom", + "x-ms-enum": { + "name": "AutomationRulePropertyChangedConditionSupportedChangedType", + "modelAsString": true, + "values": [ + { + "value": "ChangedFrom", + "description": "Evaluate the condition on the previous value of the property" + }, + { + "value": "ChangedTo", + "description": "Evaluate the condition on the updated value of the property" + } + ] + } + }, + "AutomationRulePropertyChangedConditionSupportedPropertyType": { + "enum": [ + "IncidentSeverity", + "IncidentStatus", + "IncidentOwner" + ], + "type": "string", + "example": "IncidentSeverity", + "x-ms-enum": { + "name": "AutomationRulePropertyChangedConditionSupportedPropertyType", + "modelAsString": true, + "values": [ + { + "value": "IncidentSeverity", + "description": "Evaluate the condition on the incident severity" + }, + { + "value": "IncidentStatus", + "description": "Evaluate the condition on the incident status" + }, + { + "value": "IncidentOwner", + "description": "Evaluate the condition on the incident owner" + } + ] + } + }, + "AutomationRulePropertyConditionSupportedOperator": { + "enum": [ + "Equals", + "NotEquals", + "Contains", + "NotContains", + "StartsWith", + "NotStartsWith", + "EndsWith", + "NotEndsWith" + ], + "type": "string", + "example": "Equals", + "x-ms-enum": { + "name": "AutomationRulePropertyConditionSupportedOperator", + "modelAsString": true, + "values": [ + { + "value": "Equals", + "description": "Evaluates if the property equals at least one of the condition values" + }, + { + "value": "NotEquals", + "description": "Evaluates if the property does not equal any of the condition values" + }, + { + "value": "Contains", + "description": "Evaluates if the property contains at least one of the condition values" + }, + { + "value": "NotContains", + "description": "Evaluates if the property does not contain any of the condition values" + }, + { + "value": "StartsWith", + "description": "Evaluates if the property starts with any of the condition values" + }, + { + "value": "NotStartsWith", + "description": "Evaluates if the property does not start with any of the condition values" + }, + { + "value": "EndsWith", + "description": "Evaluates if the property ends with any of the condition values" + }, + { + "value": "NotEndsWith", + "description": "Evaluates if the property does not end with any of the condition values" + } + ] + } + }, + "AutomationRulePropertyConditionSupportedProperty": { + "description": "The property to evaluate in an automation rule property condition.", + "enum": [ + "IncidentTitle", + "IncidentDescription", + "IncidentSeverity", + "IncidentStatus", + "IncidentRelatedAnalyticRuleIds", + "IncidentTactics", + "IncidentLabel", + "IncidentProviderName", + "IncidentUpdatedBySource", + "IncidentCustomDetailsKey", + "IncidentCustomDetailsValue", + "AccountAadTenantId", + "AccountAadUserId", + "AccountName", + "AccountNTDomain", + "AccountPUID", + "AccountSid", + "AccountObjectGuid", + "AccountUPNSuffix", + "AlertProductNames", + "AlertAnalyticRuleIds", + "AzureResourceResourceId", + "AzureResourceSubscriptionId", + "CloudApplicationAppId", + "CloudApplicationAppName", + "DNSDomainName", + "FileDirectory", + "FileName", + "FileHashValue", + "HostAzureID", + "HostName", + "HostNetBiosName", + "HostNTDomain", + "HostOSVersion", + "IoTDeviceId", + "IoTDeviceName", + "IoTDeviceType", + "IoTDeviceVendor", + "IoTDeviceModel", + "IoTDeviceOperatingSystem", + "IPAddress", + "MailboxDisplayName", + "MailboxPrimaryAddress", + "MailboxUPN", + "MailMessageDeliveryAction", + "MailMessageDeliveryLocation", + "MailMessageRecipient", + "MailMessageSenderIP", + "MailMessageSubject", + "MailMessageP1Sender", + "MailMessageP2Sender", + "MalwareCategory", + "MalwareName", + "ProcessCommandLine", + "ProcessId", + "RegistryKey", + "RegistryValueData", + "Url" + ], + "type": "string", + "example": "IncidentTitle", + "x-ms-enum": { + "name": "AutomationRulePropertyConditionSupportedProperty", + "modelAsString": true, + "values": [ + { + "value": "IncidentTitle", + "description": "The title of the incident" + }, + { + "value": "IncidentDescription", + "description": "The description of the incident" + }, + { + "value": "IncidentSeverity", + "description": "The severity of the incident" + }, + { + "value": "IncidentStatus", + "description": "The status of the incident" + }, + { + "value": "IncidentRelatedAnalyticRuleIds", + "description": "The related Analytic rule ids of the incident" + }, + { + "value": "IncidentTactics", + "description": "The tactics of the incident" + }, + { + "value": "IncidentLabel", + "description": "The labels of the incident" + }, + { + "value": "IncidentProviderName", + "description": "The provider name of the incident" + }, + { + "value": "IncidentUpdatedBySource", + "description": "The update source of the incident" + }, + { + "value": "IncidentCustomDetailsKey", + "description": "The incident custom detail key" + }, + { + "value": "IncidentCustomDetailsValue", + "description": "The incident custom detail value" + }, + { + "value": "AccountAadTenantId", + "description": "The account Azure Active Directory tenant id" + }, + { + "value": "AccountAadUserId", + "description": "The account Azure Active Directory user id" + }, + { + "value": "AccountName", + "description": "The account name" + }, + { + "value": "AccountNTDomain", + "description": "The account NetBIOS domain name" + }, + { + "value": "AccountPUID", + "description": "The account Azure Active Directory Passport User ID" + }, + { + "value": "AccountSid", + "description": "The account security identifier" + }, + { + "value": "AccountObjectGuid", + "description": "The account unique identifier" + }, + { + "value": "AccountUPNSuffix", + "description": "The account user principal name suffix" + }, + { + "value": "AlertProductNames", + "description": "The name of the product of the alert" + }, + { + "value": "AlertAnalyticRuleIds", + "description": "The analytic rule ids of the alert" + }, + { + "value": "AzureResourceResourceId", + "description": "The Azure resource id" + }, + { + "value": "AzureResourceSubscriptionId", + "description": "The Azure resource subscription id" + }, + { + "value": "CloudApplicationAppId", + "description": "The cloud application identifier" + }, + { + "value": "CloudApplicationAppName", + "description": "The cloud application name" + }, + { + "value": "DNSDomainName", + "description": "The dns record domain name" + }, + { + "value": "FileDirectory", + "description": "The file directory full path" + }, + { + "value": "FileName", + "description": "The file name without path" + }, + { + "value": "FileHashValue", + "description": "The file hash value" + }, + { + "value": "HostAzureID", + "description": "The host Azure resource id" + }, + { + "value": "HostName", + "description": "The host name without domain" + }, + { + "value": "HostNetBiosName", + "description": "The host NetBIOS name" + }, + { + "value": "HostNTDomain", + "description": "The host NT domain" + }, + { + "value": "HostOSVersion", + "description": "The host operating system" + }, + { + "value": "IoTDeviceId", + "description": "\"The IoT device id" + }, + { + "value": "IoTDeviceName", + "description": "The IoT device name" + }, + { + "value": "IoTDeviceType", + "description": "The IoT device type" + }, + { + "value": "IoTDeviceVendor", + "description": "The IoT device vendor" + }, + { + "value": "IoTDeviceModel", + "description": "The IoT device model" + }, + { + "value": "IoTDeviceOperatingSystem", + "description": "The IoT device operating system" + }, + { + "value": "IPAddress", + "description": "The IP address" + }, + { + "value": "MailboxDisplayName", + "description": "The mailbox display name" + }, + { + "value": "MailboxPrimaryAddress", + "description": "The mailbox primary address" + }, + { + "value": "MailboxUPN", + "description": "The mailbox user principal name" + }, + { + "value": "MailMessageDeliveryAction", + "description": "The mail message delivery action" + }, + { + "value": "MailMessageDeliveryLocation", + "description": "The mail message delivery location" + }, + { + "value": "MailMessageRecipient", + "description": "The mail message recipient" + }, + { + "value": "MailMessageSenderIP", + "description": "The mail message sender IP address" + }, + { + "value": "MailMessageSubject", + "description": "The mail message subject" + }, + { + "value": "MailMessageP1Sender", + "description": "The mail message P1 sender" + }, + { + "value": "MailMessageP2Sender", + "description": "The mail message P2 sender" + }, + { + "value": "MalwareCategory", + "description": "The malware category" + }, + { + "value": "MalwareName", + "description": "The malware name" + }, + { + "value": "ProcessCommandLine", + "description": "The process execution command line" + }, + { + "value": "ProcessId", + "description": "The process id" + }, + { + "value": "RegistryKey", + "description": "The registry key path" + }, + { + "value": "RegistryValueData", + "description": "The registry key value in string formatted representation" + }, + { + "value": "Url", + "description": "The url" + } + ] + } + }, + "AutomationRulePropertyValuesChangedCondition": { + "type": "object", + "properties": { + "propertyName": { + "$ref": "#/definitions/AutomationRulePropertyChangedConditionSupportedPropertyType" + }, + "changeType": { + "$ref": "#/definitions/AutomationRulePropertyChangedConditionSupportedChangedType" + }, + "operator": { + "$ref": "#/definitions/AutomationRulePropertyConditionSupportedOperator" + }, + "propertyValues": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AutomationRulePropertyValuesCondition": { + "type": "object", + "properties": { + "propertyName": { + "$ref": "#/definitions/AutomationRulePropertyConditionSupportedProperty" + }, + "operator": { + "$ref": "#/definitions/AutomationRulePropertyConditionSupportedOperator" + }, + "propertyValues": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AutomationRuleRunPlaybookAction": { + "description": "Describes an automation rule action to run a playbook", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleAction" + } + ], + "properties": { + "actionConfiguration": { + "type": "object", + "$ref": "#/definitions/PlaybookActionProperties" + } + }, + "x-ms-discriminator-value": "RunPlaybook", + "x-ms-client-flatten": true + }, + "AutomationRulesList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/AutomationRule" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "AutomationRuleTriggeringLogic": { + "description": "Describes automation rule triggering logic.", + "required": [ + "isEnabled", + "triggersOn", + "triggersWhen" + ], + "type": "object", + "properties": { + "isEnabled": { + "description": "Determines whether the automation rule is enabled or disabled.", + "type": "boolean" + }, + "expirationTimeUtc": { + "format": "date-time", + "description": "Determines when the automation rule should automatically expire and be disabled.", + "type": "string" + }, + "triggersOn": { + "$ref": "#/definitions/triggersOn" + }, + "triggersWhen": { + "$ref": "#/definitions/triggersWhen" + }, + "conditions": { + "description": "The conditions to evaluate to determine if the automation rule should be triggered on a given object.", + "type": "array", + "maxItems": 50, + "items": { + "$ref": "#/definitions/AutomationRuleCondition" + }, + "x-ms-identifiers": [ + "conditionType" + ] + } + } + }, + "BooleanConditionProperties": { + "description": "Describes an automation rule condition that applies a boolean operator (e.g AND, OR) to conditions", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleCondition" + } + ], + "properties": { + "conditionProperties": { + "type": "object", + "$ref": "#/definitions/AutomationRuleBooleanCondition" + } + }, + "x-ms-discriminator-value": "Boolean", + "x-ms-client-flatten": true + }, + "ConditionType": { + "enum": [ + "Property", + "PropertyArray", + "PropertyChanged", + "PropertyArrayChanged", + "Boolean" + ], + "type": "string", + "example": "Property", + "x-ms-enum": { + "name": "ConditionType", + "modelAsString": true, + "values": [ + { + "value": "Property", + "description": "Evaluate an object property value" + }, + { + "value": "PropertyArray", + "description": "Evaluate an object array property value" + }, + { + "value": "PropertyChanged", + "description": "Evaluate an object property changed value" + }, + { + "value": "PropertyArrayChanged", + "description": "Evaluate an object array property changed value" + }, + { + "value": "Boolean", + "description": "Apply a boolean operator (e.g AND, OR) to conditions" + } + ] + } + }, + "EntityManualTriggerRequestBody": { + "type": "object", + "description": "Describes the request body for triggering a playbook on an entity.", + "required": [ + "logicAppsResourceId" + ], + "properties": { + "incidentArmId": { + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "scopes": [ + "Extension" + ], + "type": "Microsoft.SecurityInsights/incidents" + } + ] + }, + "description": "Incident ARM id." + }, + "tenantId": { + "format": "uuid", + "type": "string", + "description": "The tenant id of the playbook resource." + }, + "logicAppsResourceId": { + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Logic/workflows" + }, + { + "type": "Microsoft.Web/sites" + } + ] + }, + "description": "The resource id of the playbook resource." + } + } + }, + "IncidentPropertiesAction": { + "type": "object", + "properties": { + "severity": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentSeverityEnum" + }, + "status": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentStatusEnum" + }, + "classification": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentClassificationEnum" + }, + "classificationReason": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentClassificationReasonEnum" + }, + "classificationComment": { + "description": "Describes the reason the incident was closed.", + "type": "string" + }, + "owner": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentOwnerInfo" + }, + "labels": { + "description": "List of labels to add to the incident.", + "type": "array", + "x-ms-identifiers": [ + "labelName" + ], + "items": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentLabel" + } + } + } + }, + "ManualTriggerRequestBody": { + "type": "object", + "required": [ + "logicAppsResourceId" + ], + "properties": { + "tenantId": { + "format": "uuid", + "type": "string" + }, + "logicAppsResourceId": { + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Logic/workflows" + }, + { + "type": "Microsoft.Web/sites" + } + ] + } + } + } + }, + "PlaybookActionProperties": { + "type": "object", + "required": [ + "logicAppResourceId" + ], + "properties": { + "logicAppResourceId": { + "description": "The resource id of the playbook resource.", + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Logic/workflows" + }, + { + "type": "Microsoft.Web/sites" + } + ] + } + }, + "tenantId": { + "format": "uuid", + "description": "The tenant id of the playbook resource.", + "type": "string" + } + } + }, + "PropertyArrayChangedConditionProperties": { + "description": "Describes an automation rule condition that evaluates an array property's value change", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleCondition" + } + ], + "properties": { + "conditionProperties": { + "type": "object", + "$ref": "#/definitions/AutomationRulePropertyArrayChangedValuesCondition" + } + }, + "x-ms-discriminator-value": "PropertyArrayChanged", + "x-ms-client-flatten": true + }, + "PropertyArrayConditionProperties": { + "description": "Describes an automation rule condition that evaluates an array property's value", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleCondition" + } + ], + "properties": { + "conditionProperties": { + "type": "object", + "$ref": "#/definitions/AutomationRulePropertyArrayValuesCondition" + } + }, + "x-ms-discriminator-value": "PropertyArray", + "x-ms-client-flatten": true + }, + "PropertyChangedConditionProperties": { + "description": "Describes an automation rule condition that evaluates a property's value change", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleCondition" + } + ], + "properties": { + "conditionProperties": { + "type": "object", + "$ref": "#/definitions/AutomationRulePropertyValuesChangedCondition" + } + }, + "x-ms-discriminator-value": "PropertyChanged", + "x-ms-client-flatten": true + }, + "PropertyConditionProperties": { + "description": "Describes an automation rule condition that evaluates a property's value", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AutomationRuleCondition" + } + ], + "properties": { + "conditionProperties": { + "type": "object", + "$ref": "#/definitions/AutomationRulePropertyValuesCondition" + } + }, + "x-ms-discriminator-value": "Property", + "x-ms-client-flatten": true + }, + "triggersOn": { + "enum": [ + "Incidents", + "Alerts" + ], + "type": "string", + "example": "Incidents", + "x-ms-enum": { + "name": "triggersOn", + "modelAsString": true, + "values": [ + { + "value": "Incidents", + "description": "Trigger on Incidents" + }, + { + "value": "Alerts", + "description": "Trigger on Alerts" + } + ] + } + }, + "triggersWhen": { + "enum": [ + "Created", + "Updated" + ], + "type": "string", + "example": "Created", + "x-ms-enum": { + "name": "triggersWhen", + "modelAsString": true, + "values": [ + { + "value": "Created", + "description": "Trigger on created objects" + }, + { + "value": "Updated", + "description": "Trigger on updated objects" + } + ] + } + } + }, + "parameters": { + "AutomationRule": { + "name": "automationRule", + "description": "The automation rule", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/AutomationRule" + } + }, + "AutomationRuleId": { + "in": "path", + "name": "automationRuleId", + "description": "Automation rule ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BillingStatistics.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BillingStatistics.json new file mode 100644 index 000000000000..97e6d0cba513 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BillingStatistics.json @@ -0,0 +1,226 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/billingStatistics": { + "get": { + "x-ms-examples": { + "Get all Microsoft Sentinel billing statistics.": { + "$ref": "./examples/billingStatistics/GetAllBillingStatistics.json" + } + }, + "tags": [ + "billingStatistics" + ], + "description": "Gets all Microsoft Sentinel billing statistics.", + "operationId": "BillingStatistics_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BillingStatisticList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/billingStatistics/{billingStatisticName}": { + "get": { + "x-ms-examples": { + "Get a billing statistic.": { + "$ref": "./examples/billingStatistics/GetBillingStatistic.json" + } + }, + "tags": [ + "billingStatistics" + ], + "description": "Gets a billing statistic", + "operationId": "BillingStatistics_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BillingStatisticName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BillingStatistic" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "BillingStatisticList": { + "description": "List of all Microsoft Sentinel billing statistics.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of billing statistics.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of billing statistics.", + "items": { + "$ref": "#/definitions/BillingStatistic" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + }, + "BillingStatistic": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/AzureEntityResource" + } + ], + "description": "Billing statistic", + "properties": { + "kind": { + "$ref": "#/definitions/BillingStatisticKindEnum", + "description": "The kind of the billing statistic" + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "BillingStatisticKindEnum": { + "description": "The kind of the billing statistic", + "enum": [ + "SapSolutionUsage" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "BillingStatisticKind", + "values": [ + { + "value": "SapSolutionUsage" + } + ] + } + }, + "SapSolutionUsageStatistic": { + "allOf": [ + { + "$ref": "#/definitions/BillingStatistic" + } + ], + "description": "Billing statistic about the Microsoft Sentinel solution for SAP Usage", + "properties": { + "properties": { + "$ref": "#/definitions/SapSolutionUsageStatisticProperties", + "description": "The SAP solution usage object", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "SapSolutionUsage" + }, + "SapSolutionUsageStatisticProperties": { + "description": "Properties of the billing statistic about the Microsoft Sentinel solution for SAP usage", + "properties": { + "activeSystemIdCount": { + "description": "The latest count of active SAP system IDs under the Microsoft Sentinel solution for SAP Usage", + "type": "integer", + "format": "int64", + "readOnly": true + } + }, + "type": "object" + } + }, + "parameters": { + "BillingStatisticName": { + "description": "The name of the billing statistic", + "in": "path", + "name": "billingStatisticName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Bookmarks.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Bookmarks.json new file mode 100644 index 000000000000..ad74217d64aa --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Bookmarks.json @@ -0,0 +1,751 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/bookmarks": { + "get": { + "x-ms-examples": { + "Get all bookmarks.": { + "$ref": "./examples/bookmarks/GetBookmarks.json" + } + }, + "tags": [ + "Bookmarks" + ], + "description": "Gets all bookmarks.", + "operationId": "Bookmarks_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BookmarkList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/bookmarks/{bookmarkId}": { + "get": { + "x-ms-examples": { + "Get a bookmark.": { + "$ref": "./examples/bookmarks/GetBookmarkById.json" + } + }, + "tags": [ + "Bookmarks" + ], + "description": "Gets a bookmark.", + "operationId": "Bookmarks_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Bookmark" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a bookmark.": { + "$ref": "./examples/bookmarks/CreateBookmark.json" + } + }, + "tags": [ + "Bookmarks" + ], + "description": "Creates or updates the bookmark.", + "operationId": "Bookmarks_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "#/parameters/Bookmark" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Bookmark" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Bookmark" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a bookmark.": { + "$ref": "./examples/bookmarks/DeleteBookmark.json" + } + }, + "tags": [ + "Bookmarks" + ], + "description": "Delete the bookmark.", + "operationId": "Bookmarks_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/bookmarks/{bookmarkId}/relations": { + "get": { + "x-ms-examples": { + "Get all bookmark relations.": { + "$ref": "./examples/bookmarks/relations/GetAllBookmarkRelations.json" + } + }, + "tags": [ + "BookmarkRelations" + ], + "description": "Gets all bookmark relations.", + "operationId": "BookmarkRelations_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/RelationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-odata": "./common/RelationTypes.json#/definitions/Relation", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/bookmarks/{bookmarkId}/expand": { + "post": { + "x-ms-examples": { + "Expand an bookmark": { + "$ref": "./examples/bookmarks/expand/PostExpandBookmark.json" + } + }, + "description": "Expand an bookmark", + "operationId": "Bookmark_Expand", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "#/parameters/BookmarkExpandRequestBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BookmarkExpandResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "tags": [ + "Bookmark" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/bookmarks/{bookmarkId}/relations/{relationName}": { + "get": { + "x-ms-examples": { + "Get a bookmark relation.": { + "$ref": "./examples/bookmarks/relations/GetBookmarkRelationByName.json" + } + }, + "tags": [ + "BookmarkRelations" + ], + "description": "Gets a bookmark relation.", + "operationId": "BookmarkRelations_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a bookmark relation.": { + "$ref": "./examples/bookmarks/relations/CreateBookmarkRelation.json" + } + }, + "tags": [ + "BookmarkRelations" + ], + "description": "Creates the bookmark relation.", + "operationId": "BookmarkRelations_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/Relation" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete the bookmark relation.": { + "$ref": "./examples/bookmarks/relations/DeleteBookmarkRelation.json" + } + }, + "tags": [ + "BookmarkRelations" + ], + "description": "Delete the bookmark relation.", + "operationId": "BookmarkRelations_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/BookmarkId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "Bookmark": { + "description": "The bookmark", + "in": "body", + "name": "bookmark", + "required": true, + "schema": { + "$ref": "#/definitions/Bookmark" + }, + "x-ms-parameter-location": "method" + }, + "BookmarkExpandRequestBody": { + "description": "The parameters required to execute an expand operation on the given bookmark.", + "in": "body", + "name": "parameters", + "required": true, + "schema": { + "$ref": "#/definitions/BookmarkExpandParameters" + }, + "x-ms-parameter-location": "method" + }, + "BookmarkId": { + "description": "Bookmark ID", + "in": "path", + "name": "bookmarkId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "Bookmark": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a bookmark in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/BookmarkProperties", + "description": "Bookmark properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "BookmarkExpandParameters": { + "description": "The parameters required to execute an expand operation on the given bookmark.", + "properties": { + "endTime": { + "description": "The end date filter, so the only expansion results returned are before this date.", + "format": "date-time", + "type": "string" + }, + "expansionId": { + "description": "The Id of the expansion to perform.", + "format": "uuid", + "type": "string" + }, + "startTime": { + "description": "The start date filter, so the only expansion results returned are after this date.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "BookmarkExpandResponse": { + "description": "The entity expansion result operation response.", + "properties": { + "metaData": { + "$ref": "./common/EntityTypes.json#/definitions/ExpansionResultsMetadata", + "description": "The metadata from the expansion operation results." + }, + "value": { + "description": "The expansion result values.", + "properties": { + "entities": { + "description": "Array of the expansion result entities.", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/Entity" + }, + "type": "array" + }, + "edges": { + "description": "Array of expansion result connected entities", + "items": { + "$ref": "#/definitions/ConnectedEntity" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "BookmarkList": { + "description": "List all the bookmarks.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of bookmarks.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of bookmarks.", + "items": { + "$ref": "#/definitions/Bookmark" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "BookmarkProperties": { + "description": "Describes bookmark properties", + "properties": { + "created": { + "description": "The time the bookmark was created", + "format": "date-time", + "type": "string" + }, + "createdBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that created the bookmark", + "type": "object" + }, + "displayName": { + "description": "The display name of the bookmark", + "type": "string" + }, + "labels": { + "description": "List of labels relevant to this bookmark", + "items": { + "$ref": "../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array" + }, + "notes": { + "description": "The notes of the bookmark", + "type": "string" + }, + "query": { + "description": "The query of the bookmark.", + "type": "string" + }, + "queryResult": { + "description": "The query result of the bookmark.", + "type": "string" + }, + "updated": { + "description": "The last time the bookmark was updated", + "format": "date-time", + "type": "string" + }, + "updatedBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that updated the bookmark", + "type": "object" + }, + "eventTime": { + "description": "The bookmark event time", + "format": "date-time", + "type": "string" + }, + "queryStartTime": { + "description": "The start time for the query", + "format": "date-time", + "type": "string" + }, + "queryEndTime": { + "description": "The end time for the query", + "format": "date-time", + "type": "string" + }, + "incidentInfo": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentInfo", + "description": "Describes an incident that relates to bookmark", + "type": "object" + }, + "entityMappings": { + "$ref": "#/definitions/EntityMappingsList", + "description": "Describes the entity mappings of the bookmark", + "type": "object" + }, + "tactics": { + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "description": "A list of relevant mitre attacks", + "type": "array" + }, + "techniques": { + "items": { + "$ref": "#/definitions/AttackTechnique" + }, + "description": "A list of relevant mitre techniques", + "type": "array" + } + }, + "required": [ + "displayName", + "query" + ], + "type": "object" + }, + "ConnectedEntity": { + "description": "Expansion result connected entities", + "properties": { + "targetEntityId": { + "description": "Entity Id of the connected entity", + "type": "string" + }, + "additionalData": { + "description": "key-value pairs for a connected entity mapping", + "type": "object" + } + }, + "type": "object" + }, + "EntityMappingsList": { + "description": "Describes the entity mappings of the bookmark", + "items": { + "$ref": "#/definitions/BookmarkEntityMappings" + }, + "x-ms-identifiers": [], + "type": "array" + }, + "BookmarkEntityMappings": { + "description": "Describes the entity mappings of a single entity", + "properties": { + "entityType": { + "description": "The entity type", + "type": "string" + }, + "fieldMappings": { + "description": "Array of fields mapping for that entity type", + "items": { + "$ref": "#/definitions/EntityFieldMapping" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "type": "object" + }, + "EntityFieldMapping": { + "description": "Map identifiers of a single entity", + "properties": { + "identifier": { + "description": "Alert V3 identifier", + "type": "string" + }, + "value": { + "description": "The value of the identifier", + "type": "string" + } + }, + "type": "object" + }, + "AttackTechnique": { + "description": "Mitre technique (https://attack.mitre.org/matrices/enterprise/)", + "type": "string" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BusinessApplicationAgents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BusinessApplicationAgents.json new file mode 100644 index 000000000000..ef195309b757 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/BusinessApplicationAgents.json @@ -0,0 +1,1691 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}": { + "put": { + "tags": [ + "businessApplicationAgents" + ], + "description": "Creates or updates the Business Application Agent.", + "operationId": "BusinessApplicationAgents_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "agentToUpsert", + "description": "The Business Application Agent", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "BusinessApplicationAgents_CreateOrUpdate": { + "$ref": "./examples/businessApplicationAgents/BusinessApplicationAgents_CreateOrUpdate.json" + } + } + }, + "get": { + "tags": [ + "businessApplicationAgents" + ], + "description": "Gets Business Application Agent.", + "operationId": "BusinessApplicationAgent_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "BusinessApplicationAgent_Get": { + "$ref": "./examples/businessApplicationAgents/BusinessApplicationAgent_Get.json" + } + } + }, + "delete": { + "tags": [ + "businessApplicationAgents" + ], + "description": "Delete the Business Application Agent.", + "operationId": "BusinessApplicationAgents_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Ok" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "BusinessApplicationAgents_Delete": { + "$ref": "./examples/businessApplicationAgents/BusinessApplicationAgents_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents": { + "get": { + "tags": [ + "businessApplicationAgents" + ], + "description": "Gets all Business Application Agents under the workspace.", + "operationId": "BusinessApplicationAgents_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentsList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "BusinessApplicationAgents_List": { + "$ref": "./examples/businessApplicationAgents/BusinessApplicationAgents_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}/systems/{systemResourceName}": { + "put": { + "tags": [ + "systems" + ], + "description": "Creates or updates the system.", + "operationId": "Systems_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "systemToUpsert", + "description": "The system to upsert.", + "schema": { + "$ref": "#/definitions/SystemResource" + } + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/SystemResource" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SystemResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Systems_CreateOrUpdate": { + "$ref": "./examples/businessApplicationAgents/systems/Systems_CreateOrUpdate.json" + } + } + }, + "get": { + "tags": [ + "systems" + ], + "description": "Gets the system.", + "operationId": "Systems_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/SystemResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Systems_Get": { + "$ref": "./examples/businessApplicationAgents/systems/Systems_Get.json" + } + } + }, + "delete": { + "tags": [ + "systems" + ], + "description": "Deletes the system.", + "operationId": "Systems_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Ok" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Systems_Delete": { + "$ref": "./examples/businessApplicationAgents/systems/Systems_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}/systems": { + "get": { + "tags": [ + "systems" + ], + "description": "ListAll the systems.", + "operationId": "Systems_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "$ref": "#/definitions/SystemsList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Systems_List": { + "$ref": "./examples/businessApplicationAgents/systems/Systems_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}/systems/{systemResourceName}/listActions": { + "post": { + "tags": [ + "SystemsActions" + ], + "operationId": "Systems_ListActions", + "description": "List of actions for a business application system.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + } + ], + "responses": { + "200": { + "description": "List actions for a business application system", + "schema": { + "$ref": "#/definitions/ListActionsResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ListActions": { + "$ref": "./examples/businessApplicationAgents/actions/ListActions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}/systems/{systemResourceName}/undoAction": { + "post": { + "tags": [ + "SystemsActions" + ], + "operationId": "Systems_UndoAction", + "description": "Undo action, based on the actionId.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "body", + "description": "Undo action, based on the actionId.", + "name": "payload", + "schema": { + "$ref": "#/definitions/UndoActionPayload" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "UndoAction": { + "$ref": "./examples/businessApplicationAgents/actions/UndoAction.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/businessApplicationAgents/{agentResourceName}/systems/{systemResourceName}/reportActionStatus": { + "post": { + "tags": [ + "SystemsActions" + ], + "operationId": "Systems_ReportActionStatus", + "description": "Report the status of the action.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "in": "path", + "name": "agentResourceName", + "description": "Business Application Agent Name", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "path", + "name": "systemResourceName", + "description": "The name of the system.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9,-]*$", + "minLength": 3, + "maxLength": 63 + }, + { + "in": "body", + "name": "payload", + "description": "Report a status of the action that was performed by the agent", + "schema": { + "$ref": "#/definitions/ReportActionStatusPayload" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ReportActionStatus": { + "$ref": "./examples/businessApplicationAgents/actions/ReportActionStatus.json" + } + } + } + } + }, + "definitions": { + "BusinessApplicationAgentResource": { + "description": "Describes the configuration of a Business Application Agent.", + "required": [ + "properties" + ], + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/AgentProperties", + "x-ms-client-flatten": true + } + } + }, + "AgentConfiguration": { + "description": "Describes the configuration of a Business Application Agent.", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/AgentType" + } + }, + "discriminator": "type" + }, + "AgentProperties": { + "required": [ + "configuration", + "displayName" + ], + "type": "object", + "properties": { + "configuration": { + "$ref": "#/definitions/AgentConfiguration" + }, + "agentSystems": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentSystem" + }, + "readOnly": true + }, + "displayName": { + "minLength": 1, + "type": "string" + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "type": "string", + "readOnly": true + } + } + }, + "AgentSystem": { + "description": "Describes the configuration of a system inside the agent.", + "type": "object", + "properties": { + "systemResourceName": { + "type": "string" + }, + "systemDisplayName": { + "type": "string" + } + } + }, + "AgentType": { + "description": "Type of the agent", + "enum": [ + "SAP" + ], + "type": "string", + "example": "SAP", + "x-ms-enum": { + "name": "AgentType", + "modelAsString": true, + "values": [ + { + "value": "SAP" + } + ] + } + }, + "BusinessApplicationAgentsList": { + "description": "List of agents.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "KeyVaultAuthenticationMode": { + "description": "Type for authentication identity to key vault", + "enum": [ + "ManagedIdentity", + "ServicePrincipal" + ], + "type": "string", + "example": "ManagedIdentity", + "x-ms-enum": { + "name": "KeyVaultAuthenticationMode", + "modelAsString": true, + "values": [ + { + "value": "ManagedIdentity" + }, + { + "value": "ServicePrincipal" + } + ] + } + }, + "SapAgentConfiguration": { + "description": "Describes the configuration of a SAP Docker agent.", + "required": [ + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AgentConfiguration" + } + ], + "properties": { + "agentContainerName": { + "description": "The name of the docker agent.\r\nonly letters with numbers, underscores and hyphens are allowed\r\nexample: \"my-agent\"", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "sdkPath": { + "description": "The SDK path (a file not a folder) on the agent machine.\r\nexample: \"/path/to/nwrfc750P_8-70002755.zip\"", + "pattern": "^/(([^/]+/)*nwrfc75.*\\.zip$)|^((?:[a-zA-Z]:)?(?:\\\\|\\\\\\\\)(?:[^\\\\/:*?\"<>|\\r\\n]+\\\\)*nwrfc75.*\\.zip)$", + "type": "string" + }, + "sncPath": { + "description": "The SNC path (a folder not a file) on the agent machine.\r\nexample: \"/path/to/snc\"", + "pattern": "^\\/(?:[^/]+\\/)*[^/]+$|^(?:[a-zA-Z]:)?(?:\\\\|\\\\\\\\)(?:[^\\\\/:*?\"<>|\\r\\n]+\\\\)*[^\\\\/:*?\"<>|\\r\\n]*$", + "type": "string" + }, + "keyVaultResourceId": { + "description": "The key vault resource id to access the key vault.\r\nexample: \"/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault\"", + "pattern": "^\\/?subscriptions\\/([^\\/]+)\\/resourceGroups\\/([^\\/]+)\\/providers\\/Microsoft\\.KeyVault\\/vaults\\/([^\\/]+)$", + "type": "string" + }, + "keyVaultAuthenticationMode": { + "description": "The key mode of the agent.\r\nManagedIdentity|ApplicationIdentity are the options", + "$ref": "#/definitions/KeyVaultAuthenticationMode" + }, + "secretSource": { + "description": "The secret source of the agent.\r\nAzureKeyVault is the option", + "$ref": "#/definitions/SecretSource" + }, + "type": { + "$ref": "#/definitions/AgentType" + } + }, + "x-ms-discriminator-value": "SAP" + }, + "SecretSource": { + "description": "Type for Secret Source - Azure Key Vault", + "enum": [ + "AzureKeyVault" + ], + "type": "string", + "example": "AzureKeyVault", + "x-ms-enum": { + "name": "SecretSource", + "modelAsString": true, + "values": [ + { + "value": "AzureKeyVault" + } + ] + } + }, + "ListActionsResponse": { + "description": "List all actions for a system to perform.", + "properties": { + "value": { + "description": "Array of actions.", + "items": { + "$ref": "#/definitions/Action" + }, + "x-ms-identifiers": [], + "type": "array" + }, + "nextLink": { + "description": "The link to fetch the next page of actions.", + "type": "string" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "Action": { + "description": "Represents an action to perform on a specific system.", + "discriminator": "kind", + "required": [ + "kind" + ], + "properties": { + "kind": { + "$ref": "#/definitions/ListActionKind", + "description": "The actions kind" + } + }, + "type": "object" + }, + "ListActionKind": { + "description": "The kind of the action", + "enum": [ + "LockUser", + "UnlockUser" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ListActionKind", + "values": [ + { + "value": "LockUser" + }, + { + "value": "UnlockUser" + } + ] + } + }, + "LockUserAction": { + "allOf": [ + { + "$ref": "#/definitions/Action" + } + ], + "description": "Represents lock user action.", + "properties": { + "user": { + "type": "string", + "description": "The user to lock" + }, + "failureReason": { + "type": "string", + "description": "The reason of the failure of the action. Empty if the action is successful." + } + }, + "type": "object", + "x-ms-discriminator-value": "LockUser" + }, + "UnlockUserAction": { + "allOf": [ + { + "$ref": "#/definitions/Action" + } + ], + "description": "Represents an unlock user action.", + "properties": { + "user": { + "type": "string", + "description": "The user to unlock" + }, + "failureReason": { + "type": "string", + "description": "The reason of the failure of the action. Empty if the action is successful." + } + }, + "type": "object", + "x-ms-discriminator-value": "UnlockUser" + }, + "UndoActionPayload": { + "description": "Represents the undo action.", + "properties": { + "actionId": { + "type": "string", + "description": "The action ID of the original action that was performed and now need to undo" + } + }, + "type": "object" + }, + "ReportActionStatusPayload": { + "description": "Report the status of an action that was performed by the agent", + "type": "object", + "properties": { + "actionId": { + "type": "string", + "description": "The action ID to perform" + }, + "actionStatus": { + "description": "The status of the action that was performed by the agent", + "type": "string" + }, + "failureReason": { + "description": "The reason of the failure of the action. Empty if the action is successful.", + "type": "string" + } + } + }, + "ActionStatus": { + "description": "The status of the action that was performed by the agent", + "enum": [ + "Pending", + "Completed", + "Failed" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ActionStatus", + "values": [ + { + "value": "Pending", + "description": "Actions is pending" + }, + { + "value": "Completed", + "description": "The action is completed successfully." + }, + { + "value": "Failed", + "description": "The action failed." + } + ] + } + }, + "SapAuthenticationType": { + "description": "Types of authentication to SAP.", + "enum": [ + "UsernamePassword", + "Snc", + "SncWithUsernamePassword" + ], + "type": "string", + "example": "UsernamePassword", + "x-ms-enum": { + "name": "SapAuthenticationType", + "modelAsString": true, + "values": [ + { + "value": "UsernamePassword" + }, + { + "value": "Snc" + }, + { + "value": "SncWithUsernamePassword" + } + ] + } + }, + "ConfigurationType": { + "description": "Represents the types of configuration for a system.", + "enum": [ + "SAP" + ], + "type": "string", + "example": "SAP", + "x-ms-enum": { + "name": "ConfigurationType", + "modelAsString": true, + "values": [ + { + "value": "SAP" + } + ] + } + }, + "HttpsConfigurationType": { + "description": "Represents the types of HTTPS configuration to connect to the SapControl service.", + "enum": [ + "HttpOnly", + "HttpsWithSslVerification", + "HttpsWithoutSslVerification" + ], + "type": "string", + "example": "HttpOnly", + "x-ms-enum": { + "name": "HttpsConfigurationType", + "modelAsString": true, + "values": [ + { + "value": "HttpOnly" + }, + { + "value": "HttpsWithSslVerification" + }, + { + "value": "HttpsWithoutSslVerification" + } + ] + } + }, + "IngestionType": { + "description": "Types of ingestion.", + "enum": [ + "Full", + "Incremental" + ], + "type": "string", + "example": "Full", + "x-ms-enum": { + "name": "IngestionType", + "modelAsString": true, + "values": [ + { + "value": "Full" + }, + { + "value": "Incremental" + } + ] + } + }, + "Log": { + "description": "Describes a log.", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/LogType" + }, + "ingestionType": { + "$ref": "#/definitions/IngestionType" + }, + "status": { + "$ref": "#/definitions/LogStatusType" + }, + "scheduleInterval": { + "format": "int32", + "description": "The schedule interval in seconds.", + "type": "integer" + }, + "bulkSize": { + "format": "int32", + "description": "The bulk size for the log.", + "type": "integer" + }, + "filters": { + "description": "The filters for the log.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "LogStatusType": { + "description": "Types of log status.", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "example": "Enabled", + "x-ms-enum": { + "name": "LogStatusType", + "modelAsString": true, + "values": [ + { + "value": "Enabled" + }, + { + "value": "Disabled" + } + ] + } + }, + "LogType": { + "description": "Types of logs and tables.", + "enum": [ + "AbapAuditLog", + "AbapJobLog", + "AbapSpoolLog", + "AbapSpoolOutputLog", + "AbapChangeDocsLog", + "AbapAppLog", + "AbapWorkflowLog", + "AbapCrLog", + "AbapTableDataLog", + "AbapFilesLogs", + "JavaFilesLogs", + "AGRTCODES", + "USR01", + "USR02", + "AGR1251", + "AGRUSERS", + "AGRPROF", + "UST04", + "USR21", + "ADR6", + "ADCP", + "USR05", + "USGRPUSER", + "USERADDR", + "DEVACCESS", + "AGRDEFINE", + "PAHI", + "AGRAGRS", + "USRSTAMP", + "AGRFLAGS", + "SNCSYSACL", + "USRACL" + ], + "type": "string", + "example": "AbapAuditLog", + "x-ms-enum": { + "name": "LogType", + "modelAsString": true, + "values": [ + { + "value": "AbapAuditLog" + }, + { + "value": "AbapJobLog" + }, + { + "value": "AbapSpoolLog" + }, + { + "value": "AbapSpoolOutputLog" + }, + { + "value": "AbapChangeDocsLog" + }, + { + "value": "AbapAppLog" + }, + { + "value": "AbapWorkflowLog" + }, + { + "value": "AbapCrLog" + }, + { + "value": "AbapTableDataLog" + }, + { + "value": "AbapFilesLogs" + }, + { + "value": "JavaFilesLogs" + }, + { + "value": "AGRTCODES" + }, + { + "value": "USR01" + }, + { + "value": "USR02" + }, + { + "value": "AGR1251" + }, + { + "value": "AGRUSERS" + }, + { + "value": "AGRPROF" + }, + { + "value": "UST04" + }, + { + "value": "USR21" + }, + { + "value": "ADR6" + }, + { + "value": "ADCP" + }, + { + "value": "USR05" + }, + { + "value": "USGRPUSER" + }, + { + "value": "USERADDR" + }, + { + "value": "DEVACCESS" + }, + { + "value": "AGRDEFINE" + }, + { + "value": "PAHI" + }, + { + "value": "AGRAGRS" + }, + { + "value": "USRSTAMP" + }, + { + "value": "AGRFLAGS" + }, + { + "value": "SNCSYSACL" + }, + { + "value": "USRACL" + } + ] + } + }, + "RfcConnector": { + "description": "Describes the Rfc connector.", + "required": [ + "client", + "systemId", + "systemNumber", + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/SystemsConfigurationConnector" + } + ], + "properties": { + "abapServerHost": { + "description": "FQDN, hostname, or IP address of the ABAP server.", + "type": "string" + }, + "messageServerHost": { + "description": "FQDN, hostname, or IP address of the Message server.", + "type": "string" + }, + "group": { + "description": "Logon group of the message server.", + "type": "string" + }, + "messageServerService": { + "description": "Port number, or service name (from /etc/services) of the message server.", + "type": "string" + }, + "sncQop": { + "description": "SNC QOP.\r\nOptions are 1, 2, 3, 8, 9.", + "pattern": "^[1,2,3,8,9]$", + "type": "string" + }, + "codePage": { + "description": "The SAP code page used for character encoding.\r\nExample - 1100", + "pattern": "^(?:[a-zA-Z0-9]{4}|UTF-8)$", + "type": "string" + }, + "systemNumber": { + "description": "System number of the ABAP server.", + "minLength": 1, + "pattern": "^\\d{1,3}$", + "type": "string" + }, + "systemId": { + "description": "System ID of the ABAP server.\r\nExample - A4H", + "minLength": 1, + "pattern": "^[a-zA-Z0-9]{3}$", + "type": "string" + }, + "client": { + "description": "Client number of the ABAP server.\r\nExample - 001", + "minLength": 1, + "pattern": "^[0-9]{3}$", + "type": "string" + }, + "authenticationType": { + "description": "The authentication type to SAP.", + "$ref": "#/definitions/SapAuthenticationType" + }, + "type": { + "$ref": "#/definitions/SystemConfigurationConnectorType" + } + }, + "x-ms-discriminator-value": "Rfc" + }, + "SapControlConnector": { + "description": "Describes the SapControl connector configuration.", + "required": [ + "instance", + "server", + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/SystemsConfigurationConnector" + } + ], + "properties": { + "server": { + "description": "The server name.\r\nFQDN or IP address.", + "minLength": 1, + "pattern": "^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$|^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$", + "type": "string" + }, + "instance": { + "description": "The instance number. Only 2 digits are allowed.", + "minLength": 1, + "pattern": "^\\d{2}$", + "type": "string" + }, + "timezone": { + "description": "The timezone.\r\nexample: \"GMT+0\" or \"GMT-8\"\r\ndefault: \"GMT+0\"", + "default": "GMT+0", + "pattern": "^GMT[+-]\\d+$", + "type": "string" + }, + "port": { + "description": "The port of the SOAP connection to SAP Control.", + "pattern": "^\\d{1,5}$", + "type": "string" + }, + "httpsConfiguration": { + "$ref": "#/definitions/HttpsConfigurationType" + }, + "type": { + "$ref": "#/definitions/SystemConfigurationConnectorType" + } + }, + "x-ms-discriminator-value": "SapControl" + }, + "SapSystemsConfiguration": { + "description": "Describes the SAP configuration.", + "required": [ + "connector", + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/SystemsConfiguration" + } + ], + "properties": { + "azureResourceId": { + "description": "azure resource id\r\nexample: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM\"", + "pattern": "^\\/?subscriptions\\/([^\\/]+)\\/resourceGroups\\/([^\\/]+)\\/providers\\/([^\\/]+)\\/([^\\/]+)\\/([^\\/]+)$", + "type": "string" + }, + "connector": { + "$ref": "#/definitions/SystemsConfigurationConnector" + }, + "logs": { + "description": "The logs configuration.", + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/Log" + } + }, + "type": { + "$ref": "#/definitions/ConfigurationType" + } + }, + "x-ms-discriminator-value": "SAP" + }, + "SystemResource": { + "description": "Describes the system within the agent.", + "required": [ + "properties" + ], + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/SystemProperties", + "x-ms-client-flatten": true + } + } + }, + "SystemConfigurationConnectorType": { + "description": "Represents the types of SAP systems.", + "enum": [ + "Rfc", + "SapControl" + ], + "type": "string", + "example": "Rfc", + "x-ms-enum": { + "name": "SystemConfigurationConnectorType", + "modelAsString": true, + "values": [ + { + "value": "Rfc" + }, + { + "value": "SapControl" + } + ] + } + }, + "SystemProperties": { + "description": "The properties of the system.", + "required": [ + "configuration", + "displayName" + ], + "type": "object", + "properties": { + "status": { + "$ref": "#/definitions/SystemStatusType" + }, + "configuration": { + "$ref": "#/definitions/SystemsConfiguration" + }, + "displayName": { + "minLength": 1, + "type": "string" + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "type": "string", + "readOnly": true + } + } + }, + "SystemStatusType": { + "description": "The status of the system.", + "enum": [ + "Running", + "Stopped" + ], + "type": "string", + "example": "Running", + "x-ms-enum": { + "name": "SystemStatusType", + "modelAsString": true, + "values": [ + { + "value": "Running" + }, + { + "value": "Stopped" + } + ] + } + }, + "SystemsConfiguration": { + "description": "The configuration of the system.", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/ConfigurationType" + } + }, + "discriminator": "type" + }, + "SystemsConfigurationConnector": { + "description": "Base Model for SAP System Connector.", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/SystemConfigurationConnectorType" + } + }, + "discriminator": "type" + }, + "SystemsList": { + "description": "List of Agent's Systems.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SystemResource" + } + }, + "nextLink": { + "type": "string" + } + } + } + }, + "parameters": { + "BusinessApplicationAgentResource": { + "name": "businessApplicationAgentResource", + "description": "The Business Application Agent Resource", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/BusinessApplicationAgentResource" + } + }, + "BusinessApplicationAgentId": { + "in": "path", + "name": "businessApplicationAgentId", + "description": "BusinessApplicationAgent ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "SystemResource": { + "name": "systemResource", + "description": "The system resource", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/SystemResource" + } + }, + "SystemId": { + "in": "path", + "name": "systemId", + "description": "System ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [ + { + "name": "BusinessApplicationAgents", + "description": "Controller that handles requests forwarded from ASI RP for agents resources CRUD ARM APIs." + }, + { + "name": "Systems", + "description": "Controller that handles requests forwarded from ASI RP for systems resources CRUD ARM APIs." + } + ], + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentPackages.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentPackages.json new file mode 100644 index 000000000000..74241286a8ae --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentPackages.json @@ -0,0 +1,319 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentPackages": { + "get": { + "x-ms-examples": { + "Get all available packages.": { + "$ref": "./examples/contentPackages/GetPackages.json" + } + }, + "tags": [ + "ContentPackages" + ], + "description": "Gets all installed packages.", + "operationId": "ContentPackages_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSearch" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataCount" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkip" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/packageList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentPackages/{packageId}": { + "get": { + "x-ms-examples": { + "Get installed packages by id.": { + "$ref": "./examples/contentPackages/GetPackageById.json" + } + }, + "tags": [ + "ContentPackages" + ], + "description": "Gets an installed packages by its id.", + "operationId": "ContentPackages_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/PackageIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/packageModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Install a package to the workspace.": { + "$ref": "./examples/contentPackages/InstallPackage.json" + } + }, + "tags": [ + "ContentPackages" + ], + "description": "Install a package to the workspace.", + "operationId": "ContentPackage_Install", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/PackageIdParameter" + }, + { + "$ref": "#/parameters/PackageInstallationProperties" + } + ], + "responses": { + "200": { + "description": "OK, a package is updated.", + "schema": { + "$ref": "#/definitions/packageModel" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/packageModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Uninstall a package from the workspace.": { + "$ref": "./examples/contentPackages/UninstallPackage.json" + } + }, + "tags": [ + "ContentPackages" + ], + "description": "Uninstall a package from the workspace.", + "operationId": "ContentPackage_Uninstall", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/PackageIdParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "packageList": { + "description": "List available packages.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of packages.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of packages.", + "items": { + "$ref": "#/definitions/packageModel" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "packageModel": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Package in Azure Security Insights.", + "properties": { + "properties": { + "description": "package properties", + "$ref": "#/definitions/packageProperties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "packageProperties": { + "description": "Describes package properties", + "allOf": [ + { + "$ref": "./common/ContentCommonTypes.json#/definitions/packageBaseProperties" + } + ], + "required": [ + "contentId", + "contentProductId", + "contentKind", + "version", + "displayName" + ], + "type": "object" + } + }, + "parameters": { + "PackageIdParameter": { + "description": "package Id", + "in": "path", + "name": "packageId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PackageInstallationProperties": { + "description": "Package installation properties", + "in": "body", + "name": "packageInstallationProperties", + "required": true, + "schema": { + "$ref": "#/definitions/packageModel" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductPackages.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductPackages.json new file mode 100644 index 000000000000..7b1b750652e7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductPackages.json @@ -0,0 +1,235 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentProductPackages": { + "get": { + "x-ms-examples": { + "Get all available packages.": { + "$ref": "./examples/contentPackages/GetProductPackages.json" + } + }, + "tags": [ + "ContentProductPackages" + ], + "description": "Gets all packages from the catalog.\nExpandable properties:\n- properties/installed\n- properties/packagedContent", + "operationId": "ProductPackages_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSearch" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/productPackageList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentProductPackages/{packageId}": { + "get": { + "x-ms-examples": { + "Get a package.": { + "$ref": "./examples/contentPackages/GetProductPackageById.json" + } + }, + "tags": [ + "ContentProductPackages" + ], + "description": "Gets a package by its identifier from the catalog.", + "operationId": "ProductPackage_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/PackageIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/productPackageModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "productPackageList": { + "description": "List available packages.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of packages.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of packages.", + "items": { + "$ref": "#/definitions/productPackageModel" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "productPackageModel": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Package in Azure Security Insights.", + "properties": { + "properties": { + "description": "package properties", + "$ref": "#/definitions/productPackageProperties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "productPackageProperties": { + "description": "Describes package properties", + "allOf": [ + { + "$ref": "./common/ContentCommonTypes.json#/definitions/packageBaseProperties", + "description": "The content id of the package" + }, + { + "$ref": "#/definitions/productPackageAdditionalProperties", + "description": "The package kind" + } + ], + "required": [ + "contentId", + "contentKind", + "version", + "displayName" + ], + "type": "object" + }, + "productPackageAdditionalProperties": { + "description": "product package additional properties", + "properties": { + "installedVersion": { + "$ref": "./common/ContentCommonTypes.json#/definitions/metadataVersion", + "description": "The version of the installed package, null or absent means not installed." + }, + "metadataResourceId": { + "description": "The metadata resource id.", + "type": "string", + "format": "arm-id" + }, + "packagedContent": { + "$ref": "#/definitions/packagedContent", + "description": "The json of the ARM template to deploy. Expandable." + } + }, + "type": "object" + }, + "packagedContent": { + "type": "object", + "description": "The json of the ARM template to deploy" + } + }, + "parameters": { + "PackageIdParameter": { + "description": "package Id", + "in": "path", + "name": "packageId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductTemplates.json new file mode 100644 index 000000000000..318f5fde9143 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductTemplates.json @@ -0,0 +1,226 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentProductTemplates": { + "get": { + "x-ms-examples": { + "Get all installed templates.": { + "$ref": "./examples/contentTemplates/GetProductTemplates.json" + } + }, + "tags": [ + "ContentProductTemplates" + ], + "description": "Gets all templates in the catalog.", + "operationId": "ProductTemplates_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSearch" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataCount" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkip" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/productTemplateList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentproducttemplates/{templateId}": { + "get": { + "x-ms-examples": { + "Get a template.": { + "$ref": "./examples/contentTemplates/GetProductTemplateById.json" + } + }, + "tags": [ + "ContentProductTemplates" + ], + "description": "Gets a template by its identifier.", + "operationId": "ProductTemplate_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/templateIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/productTemplateModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "productTemplateList": { + "description": "List of all the template.", + "type": "object", + "properties": { + "value": { + "description": "Array of templates.", + "items": { + "$ref": "#/definitions/productTemplateModel" + }, + "type": "array" + }, + "nextLink": { + "description": "URL to fetch the next page of template.", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "productTemplateModel": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Template resource definition.", + "properties": { + "properties": { + "description": "template properties", + "$ref": "#/definitions/productTemplateProperties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "productTemplateProperties": { + "allOf": [ + { + "$ref": "./common/ContentCommonTypes.json#/definitions/templateBaseProperties" + }, + { + "$ref": "#/definitions/productTemplateAdditionalProperties" + } + ], + "description": "Template property bag.", + "required": [ + "contentId", + "version", + "displayName", + "contentKind", + "source" + ] + }, + "productTemplateAdditionalProperties": { + "description": "additional properties of product template.", + "type": "object", + "properties": { + "packagedContent": { + "type": "object", + "description": "The json of the ARM template to deploy" + } + } + } + }, + "parameters": { + "templateIdParameter": { + "description": "template Id", + "in": "path", + "name": "templateId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentTemplates.json new file mode 100644 index 000000000000..c9f191ede5fa --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentTemplates.json @@ -0,0 +1,353 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentTemplates": { + "get": { + "x-ms-examples": { + "Get all installed templates.": { + "$ref": "./examples/contentTemplates/GetTemplates.json" + } + }, + "tags": [ + "ContentTemplates" + ], + "description": "Gets all installed templates.\nExpandable properties:\n- properties/mainTemplate\n- properties/dependantTemplates", + "operationId": "ContentTemplates_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataExpand" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSearch" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataCount" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkip" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/templateList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/contentTemplates/{templateId}": { + "put": { + "x-ms-examples": { + "Get a template.": { + "$ref": "./examples/contentTemplates/InstallTemplate.json" + } + }, + "tags": [ + "ContentTemplates" + ], + "description": "Install a template.", + "operationId": "ContentTemplate_Install", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/templateIdParameter" + }, + { + "$ref": "#/parameters/templateInstallationProperties" + } + ], + "responses": { + "200": { + "description": "OK, a template is updated.", + "schema": { + "$ref": "#/definitions/templateModel" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/templateModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "get": { + "x-ms-examples": { + "Get a template.": { + "$ref": "./examples/contentTemplates/GetTemplateById.json" + } + }, + "tags": [ + "ContentTemplates" + ], + "description": "Gets a template byt its identifier.\nExpandable properties:\n- properties/mainTemplate\n- properties/dependantTemplates", + "operationId": "ContentTemplate_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/templateIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/templateModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete metadata.": { + "$ref": "./examples/contentTemplates/DeleteTemplate.json" + } + }, + "tags": [ + "ContentTemplates" + ], + "description": "Delete an installed template.", + "operationId": "ContentTemplate_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/templateIdParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "templateList": { + "description": "List of all the template.", + "type": "object", + "properties": { + "value": { + "description": "Array of templates.", + "items": { + "$ref": "#/definitions/templateModel" + }, + "type": "array" + }, + "nextLink": { + "description": "URL to fetch the next page of template.", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "templateModel": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Template resource definition.", + "properties": { + "properties": { + "description": "template properties", + "$ref": "#/definitions/templateProperties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "templateProperties": { + "allOf": [ + { + "$ref": "./common/ContentCommonTypes.json#/definitions/templateBaseProperties" + }, + { + "$ref": "#/definitions/templateAdditionalProperties" + } + ], + "description": "Template property bag.", + "required": [ + "contentId", + "version", + "displayName", + "contentKind", + "source", + "packageId", + "packageVersion", + "contentProductId" + ], + "type": "object" + }, + "templateAdditionalProperties": { + "description": "additional properties of product template.", + "type": "object", + "properties": { + "mainTemplate": { + "$ref": "#/definitions/mainTemplate", + "description": "The JSON of the ARM template to deploy active content. Expandable." + }, + "dependantTemplates": { + "type": "array", + "items": { + "$ref": "#/definitions/templateProperties" + }, + "description": "Dependant templates. Expandable.", + "readOnly": true, + "x-ms-identifiers": [ + "contentId" + ] + } + } + }, + "mainTemplate": { + "description": "The JSON of the ARM template to deploy active content", + "type": "object" + } + }, + "parameters": { + "templateIdParameter": { + "description": "template Id", + "in": "path", + "name": "templateId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "templateInstallationProperties": { + "description": "Template installation properties", + "in": "body", + "name": "templateInstallationProperties", + "required": true, + "schema": { + "$ref": "#/definitions/templateModel" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EnrichmentWithWorkspace.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EnrichmentWithWorkspace.json new file mode 100644 index 000000000000..aef8eae6cc2b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EnrichmentWithWorkspace.json @@ -0,0 +1,443 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/enrichment/{enrichmentType}/listGeodataByIp": { + "post": { + "x-ms-examples": { + "Get geodata for a single IP address": { + "$ref": "./examples/enrichment/GetGeodataWithWorkspaceByIp.json" + } + }, + "tags": [ + "Enrichment" + ], + "description": "Get geodata for a single IP address", + "operationId": "ListGeodataByIp", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EnrichmentType" + }, + { + "$ref": "#/parameters/EnrichmentIpAddressBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EnrichmentIpGeodata" + } + }, + "default": { + "description": "Error response describing why the operation failed to enrich this ip.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/enrichment/{enrichmentType}/listWhoisByDomain": { + "post": { + "x-ms-examples": { + "Get whois information for a single domain name": { + "$ref": "./examples/enrichment/GetWhoisWithWorkspaceByDomainName.json" + } + }, + "tags": [ + "Enrichment" + ], + "description": "Get whois information for a single domain name", + "operationId": "ListWhoisByDomain", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EnrichmentType" + }, + { + "$ref": "#/parameters/EnrichmentDomainBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EnrichmentDomainWhois" + } + }, + "default": { + "description": "Error response describing why the operation failed to enrich this domain.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "EnrichmentIpAddressBody": { + "description": "IP address (v4 or v6) to be enriched", + "in": "body", + "name": "ipAddressBody", + "required": true, + "schema": { + "$ref": "#/definitions/EnrichmentIpAddressBody" + }, + "x-ms-parameter-location": "method" + }, + "EnrichmentDomainBody": { + "description": "Domain name to be enriched. Only domain name is accepted", + "in": "body", + "name": "domainBody", + "required": true, + "schema": { + "$ref": "#/definitions/EnrichmentDomainBody" + }, + "x-ms-parameter-location": "method" + }, + "EnrichmentType": { + "description": "Enrichment type", + "in": "path", + "name": "enrichmentType", + "required": true, + "enum": [ + "main" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EnrichmentType", + "values": [ + { + "value": "main" + } + ] + }, + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "EnrichmentIpAddressBody": { + "description": "IP address (v4 or v6) to be enriched", + "properties": { + "ipAddress": { + "description": "The dotted-decimal or colon-separated string representation of the IP address", + "type": "string" + } + }, + "type": "object" + }, + "EnrichmentDomainBody": { + "description": "Domain name to be enriched", + "properties": { + "domain": { + "description": "The domain name", + "type": "string" + } + }, + "type": "object" + }, + "EnrichmentDomainWhois": { + "description": "Whois information for a given domain and associated metadata", + "properties": { + "domain": { + "description": "The domain for this whois record", + "type": "string" + }, + "server": { + "description": "The hostname of this registrar's whois server", + "type": "string" + }, + "created": { + "description": "The timestamp at which this record was created", + "format": "date-time", + "type": "string" + }, + "updated": { + "description": "The timestamp at which this record was last updated", + "format": "date-time", + "type": "string" + }, + "expires": { + "description": "The timestamp at which this record will expire", + "format": "date-time", + "type": "string" + }, + "parsedWhois": { + "description": "The whois record for a given domain", + "$ref": "#/definitions/EnrichmentDomainWhoisDetails" + } + }, + "type": "object" + }, + "EnrichmentDomainWhoisDetails": { + "description": "The whois record for a given domain", + "properties": { + "registrar": { + "description": "The registrar associated with this domain", + "$ref": "#/definitions/EnrichmentDomainWhoisRegistrarDetails" + }, + "contacts": { + "description": "The set of contacts associated with this domain", + "$ref": "#/definitions/EnrichmentDomainWhoisContacts" + }, + "nameServers": { + "description": "A list of name servers associated with this domain", + "type": "array", + "items": { + "type": "string" + } + }, + "statuses": { + "description": "The set of status flags for this whois record", + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "EnrichmentDomainWhoisRegistrarDetails": { + "description": "The registrar associated with this domain", + "properties": { + "name": { + "description": "The name of this registrar", + "type": "string" + }, + "abuseContactEmail": { + "description": "This registrar's abuse contact email", + "type": "string" + }, + "abuseContactPhone": { + "description": "This registrar's abuse contact phone number", + "type": "string" + }, + "ianaId": { + "description": "This registrar's Internet Assigned Numbers Authority id", + "type": "string" + }, + "url": { + "description": "This registrar's URL", + "type": "string" + }, + "whoisServer": { + "description": "The hostname of this registrar's whois server", + "type": "string" + } + }, + "type": "object" + }, + "EnrichmentDomainWhoisContacts": { + "description": "The set of contacts associated with this domain", + "properties": { + "admin": { + "description": "The admin contact for this whois record", + "$ref": "#/definitions/EnrichmentDomainWhoisContact" + }, + "billing": { + "description": "The billing contact for this whois record", + "$ref": "#/definitions/EnrichmentDomainWhoisContact" + }, + "registrant": { + "description": "The registrant contact for this whois record", + "$ref": "#/definitions/EnrichmentDomainWhoisContact" + }, + "tech": { + "description": "The technical contact for this whois record", + "$ref": "#/definitions/EnrichmentDomainWhoisContact" + } + }, + "type": "object" + }, + "EnrichmentDomainWhoisContact": { + "description": "An individual contact associated with this domain", + "properties": { + "name": { + "description": "The name of this contact", + "type": "string" + }, + "org": { + "description": "The organization for this contact", + "type": "string" + }, + "street": { + "description": "A list describing the street address for this contact", + "type": "array", + "items": { + "type": "string" + } + }, + "city": { + "description": "The city for this contact", + "type": "string" + }, + "state": { + "description": "The state for this contact", + "type": "string" + }, + "postal": { + "description": "The postal code for this contact", + "type": "string" + }, + "country": { + "description": "The country for this contact", + "type": "string" + }, + "phone": { + "description": "The phone number for this contact", + "type": "string" + }, + "fax": { + "description": "The fax number for this contact", + "type": "string" + }, + "email": { + "description": "The email address for this contact", + "type": "string" + } + }, + "type": "object" + }, + "EnrichmentIpGeodata": { + "description": "Geodata information for a given IP address", + "properties": { + "asn": { + "description": "The autonomous system number associated with this IP address", + "type": "string" + }, + "carrier": { + "description": "The name of the carrier for this IP address", + "type": "string" + }, + "city": { + "description": "The city this IP address is located in", + "type": "string" + }, + "cityConfidenceFactor": { + "description": "A numeric rating of confidence that the value in the 'city' field is correct, on a scale of 0-100", + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 100 + }, + "continent": { + "description": "The continent this IP address is located on", + "type": "string" + }, + "country": { + "description": "The county this IP address is located in", + "type": "string" + }, + "countryConfidenceFactor": { + "description": "A numeric rating of confidence that the value in the 'country' field is correct on a scale of 0-100", + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 100 + }, + "ipAddr": { + "description": "The dotted-decimal or colon-separated string representation of the IP address", + "type": "string" + }, + "ipRoutingType": { + "description": "A description of the connection type of this IP address", + "type": "string" + }, + "latitude": { + "description": "The latitude of this IP address", + "type": "string" + }, + "longitude": { + "description": "The longitude of this IP address", + "type": "string" + }, + "organization": { + "description": "The name of the organization for this IP address", + "type": "string" + }, + "organizationType": { + "description": "The type of the organization for this IP address", + "type": "string" + }, + "region": { + "description": "The geographic region this IP address is located in", + "type": "string" + }, + "state": { + "description": "The state this IP address is located in", + "type": "string" + }, + "stateConfidenceFactor": { + "description": "A numeric rating of confidence that the value in the 'state' field is correct on a scale of 0-100", + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 100 + }, + "stateCode": { + "description": "The abbreviated name for the state this IP address is located in", + "type": "string" + } + }, + "type": "object" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Entities.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Entities.json new file mode 100644 index 000000000000..f9d4c4470d92 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Entities.json @@ -0,0 +1,1559 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities": { + "get": { + "x-ms-examples": { + "Get all entities.": { + "$ref": "./examples/entities/GetEntities.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Gets all entities.", + "operationId": "Entities_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}": { + "get": { + "x-ms-examples": { + "Get an account entity.": { + "$ref": "./examples/entities/GetAccountEntityById.json" + }, + "Get a host entity.": { + "$ref": "./examples/entities/GetHostEntityById.json" + }, + "Get a file entity.": { + "$ref": "./examples/entities/GetFileEntityById.json" + }, + "Get a security alert entity.": { + "$ref": "./examples/entities/GetSecurityAlertEntityById.json" + }, + "Get a file hash entity.": { + "$ref": "./examples/entities/GetFileHashEntityById.json" + }, + "Get a malware entity.": { + "$ref": "./examples/entities/GetMalwareEntityById.json" + }, + "Get a security group entity.": { + "$ref": "./examples/entities/GetSecurityGroupEntityById.json" + }, + "Get an azure resource entity.": { + "$ref": "./examples/entities/GetAzureResourceEntityById.json" + }, + "Get a cloud application entity.": { + "$ref": "./examples/entities/GetCloudApplicationEntityById.json" + }, + "Get a process entity.": { + "$ref": "./examples/entities/GetProcessEntityById.json" + }, + "Get a dns entity.": { + "$ref": "./examples/entities/GetDnsEntityById.json" + }, + "Get an ip entity.": { + "$ref": "./examples/entities/GetIpEntityById.json" + }, + "Get a registry key entity.": { + "$ref": "./examples/entities/GetRegistryKeyEntityById.json" + }, + "Get a registry value entity.": { + "$ref": "./examples/entities/GetRegistryValueEntityById.json" + }, + "Get a url entity.": { + "$ref": "./examples/entities/GetUrlEntityById.json" + }, + "Get an IoT device entity.": { + "$ref": "./examples/entities/GetIoTDeviceEntityById.json" + }, + "Get a mailCluster entity.": { + "$ref": "./examples/entities/GetMailClusterEntityById.json" + }, + "Get a mailbox entity.": { + "$ref": "./examples/entities/GetMailboxEntityById.json" + }, + "Get a mailMessage entity.": { + "$ref": "./examples/entities/GetMailMessageEntityById.json" + }, + "Get a submissionMail entity.": { + "$ref": "./examples/entities/GetSubmissionMailEntityById.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Gets an entity.", + "operationId": "Entities_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/EntityTypes.json#/definitions/Entity" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/expand": { + "post": { + "x-ms-examples": { + "Expand an entity": { + "$ref": "./examples/entities/expand/PostExpandEntity.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Expands an entity.", + "operationId": "Entities_Expand", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "#/parameters/EntityExpandRequestBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityExpandResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/getTimeline": { + "post": { + "x-ms-examples": { + "Entity timeline": { + "$ref": "./examples/entities/timeline/PostTimelineEntity.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Timeline for an entity.", + "operationId": "EntitiesGetTimeline_list", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "#/parameters/EntityTimelineRequestBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityTimelineResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/queries": { + "get": { + "x-ms-examples": { + "Get Entity Query": { + "$ref": "./examples/entities/GetQueries.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Get Insights and Activities for an entity.", + "operationId": "Entities_Queries", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "#/parameters/EntityQueryKindParam" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetQueriesResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/getInsights": { + "post": { + "x-ms-examples": { + "Entity Insight": { + "$ref": "./examples/entities/insights/PostGetInsights.json" + } + }, + "tags": [ + "Entities" + ], + "description": "Execute Insights for an entity.", + "operationId": "Entities_GetInsights", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "#/parameters/GetInsightsEntityQueriesRequestBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityGetInsightsResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/relations": { + "get": { + "x-ms-examples": { + "Get all relations of an entity.": { + "$ref": "./examples/entities/relations/GetAllEntityRelations.json" + } + }, + "tags": [ + "EntityRelations" + ], + "description": "Gets all relations of an entity.", + "operationId": "EntitiesRelations_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/RelationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-odata": "./common/RelationTypes.json#/definitions/Relation", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entities/{entityId}/relations/{relationName}": { + "get": { + "x-ms-examples": { + "Get an entity relation.": { + "$ref": "./examples/entities/relations/GetEntityRelationByName.json" + } + }, + "tags": [ + "EntityRelations" + ], + "description": "Gets an entity relation.", + "operationId": "EntityRelations_GetRelation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "EntityExpandRequestBody": { + "description": "The parameters required to execute an expand operation on the given entity.", + "in": "body", + "name": "parameters", + "required": true, + "schema": { + "$ref": "#/definitions/EntityExpandParameters" + }, + "x-ms-parameter-location": "method" + }, + "EntityId": { + "description": "entity ID", + "in": "path", + "name": "entityId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "EntityTimelineRequestBody": { + "description": "The parameters required to execute an timeline operation on the given entity.", + "in": "body", + "name": "parameters", + "required": true, + "schema": { + "$ref": "#/definitions/EntityTimelineParameters" + }, + "x-ms-parameter-location": "method" + }, + "EntityQueryKindParam": { + "description": "The Kind parameter for queries", + "in": "query", + "name": "kind", + "required": true, + "type": "string", + "enum": [ + "Insight" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "EntityItemQueryKind", + "values": [ + { + "description": "insight", + "value": "Insight" + } + ] + }, + "x-ms-parameter-location": "method" + }, + "GetInsightsEntityQueriesRequestBody": { + "description": "The parameters required to execute insights on the given entity.", + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/EntityGetInsightsParameters" + }, + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "ActivityTimelineItem": { + "allOf": [ + { + "$ref": "#/definitions/EntityTimelineItem" + } + ], + "description": "Represents Activity timeline item.", + "properties": { + "queryId": { + "type": "string", + "description": "The activity query id." + }, + "bucketStartTimeUTC": { + "format": "date-time", + "type": "string", + "description": "The grouping bucket start time." + }, + "bucketEndTimeUTC": { + "format": "date-time", + "type": "string", + "description": "The grouping bucket end time." + }, + "firstActivityTimeUTC": { + "format": "date-time", + "type": "string", + "description": "The time of the first activity in the grouping bucket." + }, + "lastActivityTimeUTC": { + "format": "date-time", + "type": "string", + "description": "The time of the last activity in the grouping bucket." + }, + "content": { + "type": "string", + "description": "The activity timeline content." + }, + "title": { + "type": "string", + "description": "The activity timeline title." + } + }, + "required": [ + "queryId", + "bucketStartTimeUTC", + "bucketEndTimeUTC", + "firstActivityTimeUTC", + "lastActivityTimeUTC", + "content", + "title" + ], + "type": "object", + "x-ms-discriminator-value": "Activity" + }, + "BookmarkTimelineItem": { + "allOf": [ + { + "$ref": "#/definitions/EntityTimelineItem" + } + ], + "description": "Represents bookmark timeline item.", + "properties": { + "azureResourceId": { + "type": "string", + "description": "The bookmark azure resource id." + }, + "displayName": { + "type": "string", + "description": "The bookmark display name." + }, + "notes": { + "type": "string", + "description": "The notes of the bookmark" + }, + "endTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The bookmark end time." + }, + "startTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The bookmark start time." + }, + "eventTime": { + "format": "date-time", + "type": "string", + "description": "The bookmark event time." + }, + "createdBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that created the bookmark" + }, + "labels": { + "description": "List of labels relevant to this bookmark", + "items": { + "$ref": "../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array" + } + }, + "required": [ + "azureResourceId" + ], + "type": "object", + "x-ms-discriminator-value": "Bookmark" + }, + "AnomalyTimelineItem": { + "allOf": [ + { + "$ref": "#/definitions/EntityTimelineItem" + } + ], + "description": "Represents anomaly timeline item.", + "properties": { + "azureResourceId": { + "type": "string", + "description": "The anomaly azure resource id." + }, + "productName": { + "type": "string", + "description": "The anomaly product name." + }, + "description": { + "type": "string", + "description": "The anomaly description." + }, + "displayName": { + "type": "string", + "description": "The anomaly name." + }, + "endTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The anomaly end time." + }, + "startTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The anomaly start time." + }, + "timeGenerated": { + "format": "date-time", + "type": "string", + "description": "The anomaly generated time." + }, + "vendor": { + "type": "string", + "description": "The name of the anomaly vendor." + }, + "intent": { + "type": "string", + "description": "The intent of the anomaly." + }, + "techniques": { + "type": "array", + "items": { + "type": "string", + "description": "technique of the anomaly" + }, + "description": "The techniques of the anomaly." + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "description": "Reason of the anomaly" + }, + "description": "The reasons that cause the anomaly." + } + }, + "required": [ + "azureResourceId", + "displayName", + "endTimeUtc", + "startTimeUtc", + "timeGenerated" + ], + "type": "object", + "x-ms-discriminator-value": "Anomaly" + }, + "EntityGetInsightsParameters": { + "description": "The parameters required to execute insights operation on the given entity.", + "type": "object", + "properties": { + "startTime": { + "description": "The start timeline date, so the results returned are after this date.", + "format": "date-time", + "type": "string" + }, + "endTime": { + "description": "The end timeline date, so the results returned are before this date.", + "format": "date-time", + "type": "string" + }, + "addDefaultExtendedTimeRange": { + "description": "Indicates if query time range should be extended with default time range of the query. Default value is false", + "type": "boolean" + }, + "insightQueryIds": { + "description": "List of Insights Query Id. If empty, default value is all insights of this entity", + "type": "array", + "items": { + "description": "Insight Query Id (GUID)", + "format": "uuid", + "type": "string" + } + } + }, + "required": [ + "startTime", + "endTime" + ] + }, + "EntityGetInsightsResponse": { + "description": "The Get Insights result operation response.", + "properties": { + "metaData": { + "$ref": "#/definitions/GetInsightsResultsMetadata", + "description": "The metadata from the get insights operation results." + }, + "value": { + "description": "The insights result values.", + "items": { + "$ref": "#/definitions/EntityInsightItem" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "EntityEdges": { + "description": "The edge that connects the entity to the other entity.", + "properties": { + "targetEntityId": { + "description": "The target entity Id.", + "type": "string" + }, + "additionalData": { + "additionalProperties": true, + "description": "A bag of custom fields that should be part of the entity and will be presented to the user.", + "type": "object" + } + }, + "type": "object" + }, + "EntityExpandParameters": { + "description": "The parameters required to execute an expand operation on the given entity.", + "properties": { + "endTime": { + "description": "The end date filter, so the only expansion results returned are before this date.", + "format": "date-time", + "type": "string" + }, + "expansionId": { + "description": "The Id of the expansion to perform.", + "format": "uuid", + "type": "string" + }, + "startTime": { + "description": "The start date filter, so the only expansion results returned are after this date.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "EntityExpandResponse": { + "description": "The entity expansion result operation response.", + "properties": { + "metaData": { + "$ref": "./common/EntityTypes.json#/definitions/ExpansionResultsMetadata", + "description": "The metadata from the expansion operation results." + }, + "value": { + "description": "The expansion result values.", + "properties": { + "entities": { + "description": "Array of the expansion result entities.", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/Entity" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "edges": { + "description": "Array of edges that connects the entity to the list of entities.", + "items": { + "$ref": "#/definitions/EntityEdges" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + } + }, + "type": "object" + }, + "EntityInsightItem": { + "description": "Entity insight Item.", + "type": "object", + "properties": { + "queryId": { + "type": "string", + "description": "The query id of the insight" + }, + "queryTimeInterval": { + "type": "object", + "description": "The Time interval that the query actually executed on.", + "properties": { + "startTime": { + "format": "date-time", + "type": "string", + "description": "Insight query start time" + }, + "endTime": { + "format": "date-time", + "type": "string", + "description": "Insight query end time" + } + } + }, + "tableQueryResults": { + "$ref": "#/definitions/InsightsTableResult", + "description": "Query results for table insights query." + }, + "chartQueryResults": { + "type": "array", + "description": "Query results for table insights query.", + "items": { + "$ref": "#/definitions/InsightsTableResult", + "description": "Query results for table insights query." + }, + "x-ms-identifiers": [] + } + } + }, + "EntityList": { + "description": "List of all the entities.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of entities.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of entities.", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/Entity" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "EntityTimelineItem": { + "description": "Entity timeline Item.", + "discriminator": "kind", + "type": "object", + "properties": { + "kind": { + "$ref": "#/definitions/EntityTimelineKind", + "description": "The entity query kind type." + } + }, + "required": [ + "kind" + ] + }, + "EntityTimelineResponse": { + "description": "The entity timeline result operation response.", + "properties": { + "metaData": { + "$ref": "#/definitions/TimelineResultsMetadata", + "description": "The metadata from the timeline operation results." + }, + "value": { + "description": "The timeline result values.", + "items": { + "$ref": "#/definitions/EntityTimelineItem" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "EntityTimelineKind": { + "description": "The entity query kind", + "enum": [ + "Activity", + "Bookmark", + "SecurityAlert", + "Anomaly" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityTimelineKind", + "values": [ + { + "description": "activity", + "value": "Activity" + }, + { + "description": "bookmarks", + "value": "Bookmark" + }, + { + "description": "security alerts", + "value": "SecurityAlert" + }, + { + "description": "anomaly", + "value": "Anomaly" + } + ] + } + }, + "EntityTimelineParameters": { + "description": "The parameters required to execute s timeline operation on the given entity.", + "properties": { + "kinds": { + "description": "Array of timeline Item kinds.", + "items": { + "$ref": "#/definitions/EntityTimelineKind" + }, + "type": "array" + }, + "startTime": { + "description": "The start timeline date, so the results returned are after this date.", + "format": "date-time", + "type": "string" + }, + "endTime": { + "description": "The end timeline date, so the results returned are before this date.", + "format": "date-time", + "type": "string" + }, + "numberOfBucket": { + "description": "The number of bucket for timeline queries aggregation.", + "type": "integer", + "format": "int32" + } + }, + "type": "object", + "required": [ + "startTime", + "endTime" + ] + }, + "EntityQueryItem": { + "description": "An abstract Query item for entity", + "type": "object", + "discriminator": "kind", + "properties": { + "id": { + "description": "Query Template ARM ID", + "type": "string", + "readOnly": true + }, + "name": { + "description": "Query Template ARM Name", + "type": "string" + }, + "type": { + "description": "ARM Type", + "type": "string" + }, + "kind": { + "$ref": "./common/EntityTypes.json#/definitions/EntityQueryKind", + "description": "The kind of the entity query" + } + }, + "required": [ + "kind" + ] + }, + "EntityQueryItemProperties": { + "description": "An properties abstract Query item for entity", + "type": "object", + "properties": { + "dataTypes": { + "description": "Data types for template", + "type": "array", + "items": { + "properties": { + "dataType": { + "description": "Data type name", + "type": "string" + } + }, + "type": "object" + }, + "x-ms-identifiers": [] + }, + "inputEntityType": { + "description": "The type of the entity", + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerType" + }, + "requiredInputFieldsSets": { + "description": "Data types for template", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "entitiesFilter": { + "description": "The query applied only to entities matching to all filters", + "type": "object" + } + } + }, + "InsightsTableResult": { + "type": "object", + "description": "Query results for table insights query.", + "properties": { + "columns": { + "type": "array", + "description": "Columns Metadata of the table", + "items": { + "properties": { + "type": { + "type": "string", + "description": "the type of the colum" + }, + "name": { + "type": "string", + "description": "the name of the colum" + } + }, + "type": "object" + }, + "x-ms-identifiers": [] + }, + "rows": { + "type": "array", + "description": "Rows data of the table", + "items": { + "type": "array", + "description": "Single row of data", + "items": { + "type": "string", + "description": "Cell in the table" + } + } + } + } + }, + "InsightQueryItem": { + "allOf": [ + { + "$ref": "#/definitions/EntityQueryItem" + } + ], + "description": "Represents Insight Query.", + "properties": { + "properties": { + "description": "Properties bag for InsightQueryItem", + "$ref": "#/definitions/InsightQueryItemProperties" + } + }, + "type": "object", + "x-ms-discriminator-value": "Insight" + }, + "InsightQueryItemProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityQueryItemProperties" + } + ], + "description": "Represents Insight Query.", + "properties": { + "displayName": { + "type": "string", + "description": "The insight display name." + }, + "description": { + "type": "string", + "description": "The insight description." + }, + "baseQuery": { + "type": "string", + "description": "The base query of the insight." + }, + "tableQuery": { + "type": "object", + "description": "The insight table query.", + "properties": { + "columnsDefinitions": { + "type": "array", + "description": "List of insight column definitions.", + "items": { + "properties": { + "header": { + "type": "string", + "description": "Insight column header." + }, + "outputType": { + "type": "string", + "description": "Insights Column type.", + "enum": [ + "Number", + "String", + "Date", + "Entity" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "outputType" + } + }, + "supportDeepLink": { + "type": "boolean", + "description": "Is query supports deep-link." + } + }, + "type": "object" + }, + "x-ms-identifiers": [] + }, + "queriesDefinitions": { + "type": "array", + "description": "List of insight queries definitions.", + "x-ms-identifiers": [], + "items": { + "properties": { + "filter": { + "type": "string", + "description": "Insight column header." + }, + "summarize": { + "type": "string", + "description": "Insight column header." + }, + "project": { + "type": "string", + "description": "Insight column header." + }, + "linkColumnsDefinitions": { + "type": "array", + "description": "Insight column header.", + "x-ms-identifiers": [], + "items": { + "properties": { + "projectedName": { + "type": "string", + "description": "Insight Link Definition Projected Name." + }, + "Query": { + "type": "string", + "description": "Insight Link Definition Query." + } + }, + "type": "object" + } + } + }, + "type": "object" + } + } + } + }, + "chartQuery": { + "type": "object", + "description": "The insight chart query." + }, + "additionalQuery": { + "type": "object", + "description": "The activity query definitions.", + "properties": { + "query": { + "type": "string", + "description": "The insight query." + }, + "text": { + "type": "string", + "description": "The insight text." + } + } + }, + "defaultTimeRange": { + "type": "object", + "description": "The insight chart query.", + "properties": { + "beforeRange": { + "type": "string", + "description": "The padding for the start time of the query." + }, + "afterRange": { + "type": "string", + "description": "The padding for the end time of the query." + } + } + }, + "referenceTimeRange": { + "type": "object", + "description": "The insight chart query.", + "properties": { + "beforeRange": { + "type": "string", + "description": "Additional query time for looking back." + } + } + } + }, + "type": "object" + }, + "GetInsightsResultsMetadata": { + "description": "Get Insights result metadata.", + "properties": { + "totalCount": { + "description": "the total items found for the insights request", + "type": "integer", + "format": "int32" + }, + "errors": { + "description": "information about the failed queries", + "items": { + "$ref": "#/definitions/GetInsightsErrorKind" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "required": [ + "totalCount" + ], + "type": "object" + }, + "GetInsightsErrorKind": { + "description": "GetInsights Query Errors.", + "properties": { + "kind": { + "description": "the query kind", + "type": "string", + "enum": [ + "Insight" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "GetInsightsError", + "values": [ + { + "value": "Insight" + } + ] + } + }, + "queryId": { + "description": "the query id", + "type": "string" + }, + "errorMessage": { + "description": "the error message", + "type": "string" + } + }, + "required": [ + "kind", + "errorMessage" + ], + "type": "object" + }, + "GetQueriesResponse": { + "description": "Retrieve queries for entity result operation response.", + "properties": { + "value": { + "description": "The query result values.", + "items": { + "$ref": "#/definitions/EntityQueryItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityAlertTimelineItem": { + "allOf": [ + { + "$ref": "#/definitions/EntityTimelineItem" + } + ], + "description": "Represents security alert timeline item.", + "properties": { + "azureResourceId": { + "type": "string", + "description": "The alert azure resource id." + }, + "productName": { + "type": "string", + "description": "The alert product name." + }, + "description": { + "type": "string", + "description": "The alert description." + }, + "displayName": { + "type": "string", + "description": "The alert name." + }, + "severity": { + "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The alert severity." + }, + "endTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The alert end time." + }, + "startTimeUtc": { + "format": "date-time", + "type": "string", + "description": "The alert start time." + }, + "timeGenerated": { + "format": "date-time", + "type": "string", + "description": "The alert generated time." + }, + "alertType": { + "type": "string", + "description": "The name of the alert type." + }, + "intent": { + "type": "string", + "description": "The intent of the alert.", + "enum": [ + "Unknown", + "Probing", + "Exploitation", + "Persistence", + "PrivilegeEscalation", + "DefenseEvasion", + "CredentialAccess", + "Discovery", + "LateralMovement", + "Execution", + "Collection", + "Exfiltration", + "CommandAndControl", + "Impact" + ], + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "KillChainIntent", + "values": [ + { + "description": "The default value.", + "value": "Unknown" + }, + { + "description": "Probing could be an attempt to access a certain resource regardless of a malicious intent or a failed attempt to gain access to a target system to gather information prior to exploitation. This step is usually detected as an attempt originating from outside the network in attempt to scan the target system and find a way in.", + "value": "Probing" + }, + { + "description": "Exploitation is the stage where an attacker manage to get foothold on the attacked resource. This stage is applicable not only for compute hosts, but also for resources such as user accounts, certificates etc. Adversaries will often be able to control the resource after this stage.", + "value": "Exploitation" + }, + { + "description": "Persistence is any access, action, or configuration change to a system that gives an adversary a persistent presence on that system. Adversaries will often need to maintain access to systems through interruptions such as system restarts, loss of credentials, or other failures that would require a remote access tool to restart or alternate backdoor for them to regain access.", + "value": "Persistence" + }, + { + "description": "Privilege escalation is the result of actions that allow an adversary to obtain a higher level of permissions on a system or network. Certain tools or actions require a higher level of privilege to work and are likely necessary at many points throughout an operation. User accounts with permissions to access specific systems or perform specific functions necessary for adversaries to achieve their objective may also be considered an escalation of privilege.", + "value": "PrivilegeEscalation" + }, + { + "description": "Defense evasion consists of techniques an adversary may use to evade detection or avoid other defenses. Sometimes these actions are the same as or variations of techniques in other categories that have the added benefit of subverting a particular defense or mitigation. ", + "value": "DefenseEvasion" + }, + { + "description": "Credential access represents techniques resulting in access to or control over system, domain, or service credentials that are used within an enterprise environment. Adversaries will likely attempt to obtain legitimate credentials from users or administrator accounts (local system administrator or domain users with administrator access) to use within the network. With sufficient access within a network, an adversary can create accounts for later use within the environment.", + "value": "CredentialAccess" + }, + { + "description": "Discovery consists of techniques that allow the adversary to gain knowledge about the system and internal network. When adversaries gain access to a new system, they must navigate themselves to what they now have control of and what benefits operating from that system give to their current objective or overall goals during the intrusion. The operating system provides many native tools that aid in this post-compromise information-gathering phase.", + "value": "Discovery" + }, + { + "description": "Lateral movement consists of techniques that enable an adversary to access and control remote systems on a network and could, but does not necessarily, include execution of tools on remote systems. The lateral movement techniques could allow an adversary to gather information from a system without needing additional tools, such as a remote access tool. An adversary can use lateral movement for many purposes, including remote Execution of tools, pivoting to additional systems, access to specific information or files, access to additional credentials, or to cause an effect.", + "value": "LateralMovement" + }, + { + "description": "The execution tactic represents techniques that result in execution of adversary-controlled code on a local or remote system. This tactic is often used in conjunction with lateral movement to expand access to remote systems on a network.", + "value": "Execution" + }, + { + "description": "Collection consists of techniques used to identify and gather information, such as sensitive files, from a target network prior to exfiltration. This category also covers locations on a system or network where the adversary may look for information to exfiltrate.", + "value": "Collection" + }, + { + "description": "Exfiltration refers to techniques and attributes that result or aid in the adversary removing files and information from a target network. This category also covers locations on a system or network where the adversary may look for information to exfiltrate.", + "value": "Exfiltration" + }, + { + "description": "The command and control tactic represents how adversaries communicate with systems under their control within a target network.", + "value": "CommandAndControl" + }, + { + "description": "The impact intent primary objective is to directly reduce the availability or integrity of a system, service, or network; including manipulation of data to impact a business or operational process. This would often refer to techniques such as ransom-ware, defacement, data manipulation and others.", + "value": "Impact" + } + ] + } + }, + "techniques": { + "type": "array", + "items": { + "type": "string", + "description": "technique of the alert" + }, + "description": "The techniques of the alert." + } + }, + "required": [ + "azureResourceId", + "displayName", + "severity", + "endTimeUtc", + "startTimeUtc", + "timeGenerated", + "alertType" + ], + "type": "object", + "x-ms-discriminator-value": "SecurityAlert" + }, + "TimelineError": { + "description": "Timeline Query Errors.", + "properties": { + "kind": { + "description": "the query kind", + "$ref": "#/definitions/EntityTimelineKind" + }, + "queryId": { + "description": "the query id", + "type": "string" + }, + "errorMessage": { + "description": "the error message", + "type": "string" + } + }, + "required": [ + "kind", + "errorMessage" + ], + "type": "object" + }, + "TimelineResultsMetadata": { + "description": "Expansion result metadata.", + "properties": { + "totalCount": { + "description": "the total items found for the timeline request", + "type": "integer", + "format": "int32" + }, + "aggregations": { + "description": "timeline aggregation per kind", + "items": { + "$ref": "#/definitions/TimelineAggregation" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "errors": { + "description": "information about the failure queries", + "items": { + "$ref": "#/definitions/TimelineError" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "required": [ + "totalCount", + "aggregations" + ], + "type": "object" + }, + "TimelineAggregation": { + "description": "timeline aggregation information per kind", + "properties": { + "count": { + "description": "the total items found for a kind", + "type": "integer", + "format": "int32" + }, + "kind": { + "description": "the query kind", + "$ref": "#/definitions/EntityTimelineKind" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueries.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueries.json new file mode 100644 index 000000000000..eba0dac1ffc1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueries.json @@ -0,0 +1,534 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entityQueries": { + "get": { + "x-ms-examples": { + "Get all entity queries.": { + "$ref": "./examples/entityQueries/GetEntityQueries.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Gets all entity queries.", + "operationId": "EntityQueries_List", + "parameters": [ + { + "$ref": "#/parameters/EntityQueryKind" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityQueryList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entityQueries/{entityQueryId}": { + "get": { + "x-ms-examples": { + "Get an Expansion entity query.": { + "$ref": "./examples/entityQueries/GetExpansionEntityQueryById.json" + }, + "Get an Activity entity query.": { + "$ref": "./examples/entityQueries/GetActivityEntityQueryById.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Gets an entity query.", + "operationId": "EntityQueries_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityQueryId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityQuery" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates an Activity entity query.": { + "$ref": "./examples/entityQueries/CreateEntityQueryActivity.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Creates or updates the entity query.", + "operationId": "EntityQueries_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityQueryId" + }, + { + "$ref": "#/parameters/CustomEntityQuery" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityQuery" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/EntityQuery" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete an entity query.": { + "$ref": "./examples/entityQueries/DeleteEntityQuery.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Delete the entity query.", + "operationId": "EntityQueries_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityQueryId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "CustomEntityQueryKind": { + "description": "The kind of the entity query that supports put request.", + "enum": [ + "Activity" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "CustomEntityQueryKind", + "values": [ + { + "value": "Activity" + } + ] + } + }, + "EntityQueryList": { + "description": "List of all the entity queries.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of entity queries.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of entity queries.", + "items": { + "$ref": "#/definitions/EntityQuery" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "EntityQuery": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Specific entity query.", + "discriminator": "kind", + "properties": { + "kind": { + "$ref": "./common/EntityTypes.json#/definitions/EntityQueryKind", + "description": "the entity query kind" + } + }, + "type": "object", + "required": [ + "kind" + ] + }, + "CustomEntityQuery": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Specific entity query that supports put requests.", + "discriminator": "kind", + "properties": { + "kind": { + "$ref": "#/definitions/CustomEntityQueryKind", + "description": "the entity query kind" + } + }, + "type": "object", + "required": [ + "kind" + ] + }, + "ExpansionEntityQuery": { + "description": "Represents Expansion entity query.", + "allOf": [ + { + "$ref": "#/definitions/EntityQuery" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ExpansionEntityQueriesProperties", + "description": "Expansion entity query properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Expansion" + }, + "ExpansionEntityQueriesProperties": { + "description": "Describes expansion entity query properties", + "properties": { + "dataSources": { + "description": "List of the data sources that are required to run the query", + "items": { + "description": "data source", + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "The query display name", + "type": "string" + }, + "inputEntityType": { + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerType", + "description": "The type of the query's source entity" + }, + "inputFields": { + "description": "List of the fields of the source entity that are required to run the query", + "items": { + "description": "input field", + "type": "string" + }, + "type": "array" + }, + "outputEntityTypes": { + "description": "List of the desired output types to be constructed from the result", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerType", + "description": "output entity type" + }, + "type": "array" + }, + "queryTemplate": { + "description": "The template query string to be parsed and formatted", + "type": "string" + } + }, + "type": "object" + }, + "ActivityEntityQuery": { + "description": "Represents Activity entity query.", + "allOf": [ + { + "$ref": "#/definitions/EntityQuery" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ActivityEntityQueriesProperties", + "description": "Activity entity query properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Activity" + }, + "ActivityCustomEntityQuery": { + "description": "Represents Activity entity query.", + "allOf": [ + { + "$ref": "#/definitions/CustomEntityQuery" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ActivityEntityQueriesProperties", + "description": "Activity entity query properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Activity" + }, + "ActivityEntityQueriesProperties": { + "description": "Describes activity entity query properties", + "properties": { + "title": { + "description": "The entity query title", + "type": "string" + }, + "content": { + "description": "The entity query content to display in timeline", + "type": "string" + }, + "description": { + "description": "The entity query description", + "type": "string" + }, + "queryDefinitions": { + "description": "The Activity query definitions", + "properties": { + "query": { + "description": "The Activity query to run on a given entity", + "type": "string" + } + }, + "type": "object" + }, + "inputEntityType": { + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerType", + "description": "The type of the query's source entity" + }, + "requiredInputFieldsSets": { + "description": "List of the fields of the source entity that are required to run the query", + "items": { + "description": "Sub sets of the field of the source entity that are required to run the query", + "items": { + "description": "Required input field name", + "type": "string" + }, + "type": "array" + }, + "type": "array" + }, + "entitiesFilter": { + "description": "The query applied only to entities matching to all filters", + "type": "object", + "additionalProperties": { + "description": "Filter field name", + "items": { + "description": "Filter field values", + "type": "string" + }, + "type": "array" + } + }, + "templateName": { + "description": "The template id this activity was created from", + "type": "string" + }, + "enabled": { + "description": "Determines whether this activity is enabled or disabled.", + "type": "boolean" + }, + "createdTimeUtc": { + "description": "The time the activity was created", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "lastModifiedTimeUtc": { + "description": "The last time the activity was updated", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + } + }, + "parameters": { + "EntityQueryId": { + "description": "entity query ID", + "in": "path", + "name": "entityQueryId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "EntityQueryKind": { + "description": "The entity query kind we want to fetch", + "in": "query", + "name": "kind", + "required": false, + "enum": [ + "Expansion", + "Activity" + ], + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-enum": { + "name": "EntityQueryTemplateKind", + "modelAsString": true, + "values": [ + { + "value": "Activity" + }, + { + "value": "Insight" + }, + { + "value": "SecurityAlert" + }, + { + "value": "Bookmark" + }, + { + "value": "Expansion" + }, + { + "value": "GuidedInsight" + }, + { + "value": "Anomaly" + } + ] + } + }, + "CustomEntityQuery": { + "description": "The entity query we want to create or update", + "in": "body", + "name": "entityQuery", + "required": true, + "schema": { + "$ref": "#/definitions/CustomEntityQuery" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueryTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueryTemplates.json new file mode 100644 index 000000000000..390a5064476a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueryTemplates.json @@ -0,0 +1,331 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entityQueryTemplates": { + "get": { + "x-ms-examples": { + "Get all entity query templates.": { + "$ref": "./examples/entityQueryTemplates/GetEntityQueryTemplates.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Gets all entity query templates.", + "operationId": "EntityQueryTemplates_List", + "parameters": [ + { + "$ref": "#/parameters/EntityQueryTemplateKind" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityQueryTemplateList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/entityQueryTemplates/{entityQueryTemplateId}": { + "get": { + "x-ms-examples": { + "Get an Activity entity query template.": { + "$ref": "./examples/entityQueryTemplates/GetActivityEntityQueryTemplateById.json" + } + }, + "tags": [ + "EntityQueries" + ], + "description": "Gets an entity query.", + "operationId": "EntityQueryTemplates_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/EntityQueryTemplateId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EntityQueryTemplate" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "EntityQueryTemplateKind": { + "description": "The kind of the entity query template.", + "enum": [ + "Activity" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityQueryTemplateKind", + "values": [ + { + "value": "Activity" + } + ] + } + }, + "EntityQueryTemplateList": { + "description": "List of all the entity query templates.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of entity query templates.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of entity query templates.", + "items": { + "$ref": "#/definitions/EntityQueryTemplate" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "EntityQueryTemplate": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "description": "Specific entity query template.", + "discriminator": "kind", + "properties": { + "kind": { + "$ref": "#/definitions/EntityQueryTemplateKind", + "description": "the entity query template kind" + } + }, + "type": "object", + "required": [ + "kind" + ] + }, + "ActivityEntityQueryTemplate": { + "description": "Represents Activity entity query.", + "allOf": [ + { + "$ref": "#/definitions/EntityQueryTemplate" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ActivityEntityQueryTemplateProperties", + "description": "Activity entity query properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Activity" + }, + "ActivityEntityQueryTemplateProperties": { + "description": "Describes activity entity query properties", + "properties": { + "title": { + "description": "The entity query title", + "type": "string" + }, + "content": { + "description": "The entity query content to display in timeline", + "type": "string" + }, + "description": { + "description": "The entity query description", + "type": "string" + }, + "queryDefinitions": { + "description": "The Activity query definitions", + "properties": { + "query": { + "description": "The Activity query to run on a given entity", + "type": "string" + }, + "summarizeBy": { + "description": "The dimensions we want to summarize the timeline results on, this is comma separated list", + "type": "string" + } + }, + "type": "object" + }, + "dataTypes": { + "description": "List of required data types for the given entity query template", + "items": { + "$ref": "#/definitions/DataTypeDefinitions" + }, + "type": "array" + }, + "inputEntityType": { + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerType", + "description": "The type of the query's source entity" + }, + "requiredInputFieldsSets": { + "description": "List of the fields of the source entity that are required to run the query", + "items": { + "description": "Sub sets of the field of the source entity that are required to run the query", + "items": { + "description": "Required input field name", + "type": "string" + }, + "type": "array" + }, + "type": "array" + }, + "entitiesFilter": { + "description": "The query applied only to entities matching to all filters", + "type": "object", + "additionalProperties": { + "description": "Filter field name", + "items": { + "description": "Filter field values", + "type": "string" + }, + "type": "array" + } + } + }, + "type": "object" + }, + "DataTypeDefinitions": { + "description": "The data type definition", + "properties": { + "dataType": { + "description": "The data type name", + "type": "string" + } + }, + "type": "object" + } + }, + "parameters": { + "EntityQueryTemplateId": { + "description": "entity query template ID", + "in": "path", + "name": "entityQueryTemplateId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "EntityQueryTemplateKind": { + "description": "The entity template query kind we want to fetch", + "in": "query", + "name": "kind", + "required": false, + "enum": [ + "Activity" + ], + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-enum": { + "name": "EntityQueryTemplateKind", + "modelAsString": true, + "values": [ + { + "value": "Activity" + }, + { + "value": "Insight" + }, + { + "value": "SecurityAlert" + }, + { + "value": "Bookmark" + }, + { + "value": "Expansion" + }, + { + "value": "GuidedInsight" + }, + { + "value": "Anomaly" + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/FileImports.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/FileImports.json new file mode 100644 index 000000000000..c0c276632be8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/FileImports.json @@ -0,0 +1,575 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/fileImports": { + "get": { + "x-ms-examples": { + "Get all file imports.": { + "$ref": "./examples/fileImports/GetFileImports.json" + } + }, + "tags": [ + "FileImports" + ], + "description": "Gets all file imports.", + "operationId": "FileImports_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FileImportList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/fileImports/{fileImportId}": { + "get": { + "x-ms-examples": { + "Get a file import.": { + "$ref": "./examples/fileImports/GetFileImportById.json" + } + }, + "tags": [ + "FileImports" + ], + "description": "Gets a file import.", + "operationId": "FileImports_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/FileImportId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FileImport" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create a file import.": { + "$ref": "./examples/fileImports/CreateFileImport.json" + } + }, + "tags": [ + "FileImports" + ], + "description": "Creates the file import.", + "operationId": "FileImports_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/FileImportId" + }, + { + "$ref": "#/parameters/FileImport" + } + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/FileImport" + } + }, + "200": { + "description": "Succeeded", + "schema": { + "$ref": "#/definitions/FileImport" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a file import.": { + "$ref": "./examples/fileImports/DeleteFileImport.json" + } + }, + "tags": [ + "FileImports" + ], + "description": "Delete the file import.", + "operationId": "FileImports_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/FileImportId" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "Location": { + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/FileImport" + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + } + }, + "definitions": { + "FileMetadata": { + "description": "Represents a file.", + "properties": { + "fileFormat": { + "description": "The format of the file", + "enum": [ + "CSV", + "JSON", + "Unspecified" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "fileFormat", + "values": [ + { + "description": "A CSV file.", + "value": "CSV" + }, + { + "description": "A JSON file.", + "value": "JSON" + }, + { + "description": "A file of other format.", + "value": "Unspecified" + } + ] + } + }, + "fileName": { + "description": "The name of the file.", + "type": "string" + }, + "fileSize": { + "description": "The size of the file.", + "format": "int32", + "type": "integer" + }, + "fileContentUri": { + "description": "A URI with a valid SAS token to allow uploading / downloading the file.", + "type": "string", + "readOnly": true + }, + "deleteStatus": { + "description": "Indicates whether the file was deleted from the storage account.", + "enum": [ + "Deleted", + "NotDeleted", + "Unspecified" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DeleteStatus", + "values": [ + { + "description": "The file was deleted.", + "value": "Deleted" + }, + { + "description": "The file was not deleted.", + "value": "NotDeleted" + }, + { + "description": "Unspecified", + "value": "Unspecified" + } + ] + }, + "readOnly": true + } + }, + "type": "object" + }, + "FileImport": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "description": "Represents a file import in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/FileImportProperties", + "description": "File import properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "FileImportList": { + "description": "List all the file imports.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of file imports.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of file imports.", + "items": { + "$ref": "#/definitions/FileImport" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "FileImportProperties": { + "description": "Describes the FileImport's properties", + "properties": { + "ingestionMode": { + "description": "Describes how to ingest the records in the file.", + "enum": [ + "IngestOnlyIfAllAreValid", + "IngestAnyValidRecords", + "Unspecified" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IngestionMode", + "values": [ + { + "description": "No records should be ingested when invalid records are detected.", + "value": "IngestOnlyIfAllAreValid" + }, + { + "description": "Valid records should still be ingested when invalid records are detected.", + "value": "IngestAnyValidRecords" + }, + { + "description": "Unspecified", + "value": "Unspecified" + } + ] + } + }, + "contentType": { + "description": "The content type of this file.", + "enum": [ + "BasicIndicator", + "StixIndicator", + "Unspecified" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "FileImportContentType", + "values": [ + { + "description": "File containing records with the core fields of an indicator, plus the observables to construct the STIX pattern.", + "value": "BasicIndicator" + }, + { + "description": "File containing STIX indicators.", + "value": "StixIndicator" + }, + { + "description": "File containing other records.", + "value": "Unspecified" + } + ] + } + }, + "createdTimeUTC": { + "description": "The time the file was imported.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "errorFile": { + "description": "Represents the error file (if the import was ingested with errors or failed the validation).", + "$ref": "#/definitions/FileMetadata", + "readOnly": true, + "type": "object" + }, + "errorsPreview": { + "description": "An ordered list of some of the errors that were encountered during validation.", + "items": { + "description": "An error that were encountered during validation.", + "$ref": "#/definitions/ValidationError" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "importFile": { + "description": "Represents the imported file.", + "$ref": "#/definitions/FileMetadata", + "type": "object" + }, + "ingestedRecordCount": { + "description": "The number of records that have been successfully ingested.", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "source": { + "description": "The source for the data in the file.", + "type": "string" + }, + "state": { + "description": "The state of the file import.", + "enum": [ + "FatalError", + "Ingested", + "IngestedWithErrors", + "InProgress", + "Invalid", + "WaitingForUpload", + "Unspecified" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "FileImportState", + "values": [ + { + "description": "A fatal error has occurred while ingesting the file.", + "value": "FatalError" + }, + { + "description": "The file has been ingested.", + "value": "Ingested" + }, + { + "description": "The file has been ingested with errors.", + "value": "IngestedWithErrors" + }, + { + "description": "The file ingestion is in progress.", + "value": "InProgress" + }, + { + "description": "The file is invalid.", + "value": "Invalid" + }, + { + "description": "Waiting for the file to be uploaded.", + "value": "WaitingForUpload" + }, + { + "description": "Unspecified state.", + "value": "Unspecified" + } + ] + } + }, + "totalRecordCount": { + "description": "The number of records in the file.", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "validRecordCount": { + "description": "The number of records that have passed validation.", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "filesValidUntilTimeUTC": { + "description": "The time the files associated with this import are deleted from the storage account.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "importValidUntilTimeUTC": { + "description": "The time the file import record is soft deleted from the database and history.", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "ingestionMode", + "contentType", + "importFile", + "source" + ], + "type": "object" + }, + "ValidationError": { + "description": "Describes an error encountered in the file during validation.", + "properties": { + "recordIndex": { + "description": "The number of the record that has the error.", + "type": "integer", + "format": "int32" + }, + "errorMessages": { + "description": "A list of descriptions of the error.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + } + }, + "parameters": { + "FileImportId": { + "description": "File import ID", + "in": "path", + "name": "fileImportId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "FileImport": { + "description": "The file import", + "in": "body", + "name": "fileImport", + "required": true, + "schema": { + "$ref": "#/definitions/FileImport" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Hunts.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Hunts.json new file mode 100644 index 000000000000..876827699552 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Hunts.json @@ -0,0 +1,994 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts": { + "get": { + "x-ms-examples": { + "Get all hunts.": { + "$ref": "./examples/hunts/GetHunts.json" + } + }, + "tags": [ + "Hunts" + ], + "description": "Gets all hunts, without relations and comments.", + "operationId": "Hunts_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HuntList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts/{huntId}": { + "get": { + "x-ms-examples": { + "Get a hunt.": { + "$ref": "./examples/hunts/GetHuntById.json" + } + }, + "tags": [ + "Hunts" + ], + "description": "Gets a hunt, without relations and comments.", + "operationId": "Hunts_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Hunt" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a hunt.": { + "$ref": "./examples/hunts/DeleteHunt.json" + } + }, + "tags": [ + "Hunts" + ], + "description": "Delete a hunt.", + "operationId": "Hunts_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a hunt.": { + "$ref": "./examples/hunts/CreateHunt.json" + } + }, + "tags": [ + "Hunts" + ], + "description": "Create or update a hunt", + "operationId": "Hunts_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/Hunt" + } + ], + "responses": { + "200": { + "description": "Create or update the Hunt", + "schema": { + "$ref": "#/definitions/Hunt" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Hunt" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts/{huntId}/relations": { + "get": { + "x-ms-examples": { + "Get all hunt relations.": { + "$ref": "./examples/hunts/GetHuntRelations.json" + } + }, + "tags": [ + "HuntRelations" + ], + "description": "Gets all hunt relations", + "operationId": "HuntRelations_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HuntRelationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts/{huntId}/relations/{huntRelationId}": { + "get": { + "x-ms-examples": { + "Get a hunt relation.": { + "$ref": "./examples/hunts/GetHuntRelationById.json" + } + }, + "tags": [ + "HuntRelations" + ], + "description": "Gets a hunt relation", + "operationId": "HuntRelations_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntRelationId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HuntRelation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a hunt relation.": { + "$ref": "./examples/hunts/DeleteHuntRelation.json" + } + }, + "tags": [ + "HuntRelations" + ], + "description": "Delete a hunt relation.", + "operationId": "HuntRelations_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntRelationId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a hunt relation.": { + "$ref": "./examples/hunts/CreateHuntRelation.json" + } + }, + "tags": [ + "HuntRelations" + ], + "description": "Creates or updates a hunt relation.", + "operationId": "HuntRelations_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntRelationId" + }, + { + "$ref": "#/parameters/HuntRelation" + } + ], + "responses": { + "200": { + "description": "Create or update the hunt relation", + "schema": { + "$ref": "#/definitions/HuntRelation" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/HuntRelation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts/{huntId}/comments": { + "get": { + "x-ms-examples": { + "Get all hunt comments.": { + "$ref": "./examples/hunts/GetHuntComments.json" + } + }, + "tags": [ + "HuntComments" + ], + "description": "Gets all hunt comments", + "operationId": "HuntComments_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HuntCommentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/hunts/{huntId}/comments/{huntCommentId}": { + "get": { + "x-ms-examples": { + "Get a hunt comment.": { + "$ref": "./examples/hunts/GetHuntCommentById.json" + } + }, + "tags": [ + "HuntComments" + ], + "description": "Gets a hunt comment", + "operationId": "HuntComments_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntCommentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HuntComment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a hunt comment.": { + "$ref": "./examples/hunts/DeleteHuntComment.json" + } + }, + "tags": [ + "HuntComments" + ], + "description": "Delete a hunt comment.", + "operationId": "HuntComments_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntCommentId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a hunt comment.": { + "$ref": "./examples/hunts/CreateHuntComment.json" + } + }, + "tags": [ + "HuntComments" + ], + "description": "Creates or updates a hunt relation.", + "operationId": "HuntComments_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/HuntId" + }, + { + "$ref": "#/parameters/HuntCommentId" + }, + { + "$ref": "#/parameters/HuntComment" + } + ], + "responses": { + "200": { + "description": "Create or update the hunt comment", + "schema": { + "$ref": "#/definitions/HuntComment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/HuntComment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "HuntList": { + "description": "List all the hunts.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of hunts.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of hunts.", + "items": { + "$ref": "#/definitions/Hunt" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + }, + "Hunt": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Hunt in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/HuntProperties", + "description": "Hunt properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "HuntProperties": { + "description": "Describes hunt properties", + "properties": { + "displayName": { + "description": "The display name of the hunt", + "type": "string" + }, + "description": { + "description": "The description of the hunt", + "type": "string" + }, + "status": { + "description": "The status of the hunt.", + "enum": [ + "New", + "Active", + "Closed", + "Backlog", + "Approved" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "status" + }, + "default": "New" + }, + "hypothesisStatus": { + "description": "The hypothesis status of the hunt.", + "enum": [ + "Unknown", + "Invalidated", + "Validated" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "hypothesisStatus" + }, + "default": "Unknown" + }, + "attackTactics": { + "description": "A list of mitre attack tactics the hunt is associated with", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array" + }, + "attackTechniques": { + "description": "A list of a mitre attack techniques the hunt is associated with", + "items": { + "description": "Attack Technique", + "type": "string" + }, + "type": "array" + }, + "labels": { + "description": "List of labels relevant to this hunt ", + "items": { + "$ref": "../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array" + }, + "owner": { + "$ref": "#/definitions/HuntOwner" + } + }, + "required": [ + "displayName", + "description" + ], + "type": "object" + }, + "HuntRelationList": { + "description": "List of all the hunt relations", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of hunt relations.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of hunt relations", + "items": { + "$ref": "#/definitions/HuntRelation" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "HuntRelation": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Hunt Relation in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/HuntRelationProperties", + "description": "Hunt Relation properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "HuntRelationProperties": { + "description": "Describes hunt relation properties", + "properties": { + "relatedResourceId": { + "description": "The id of the related resource", + "type": "string" + }, + "relatedResourceName": { + "description": "The name of the related resource", + "type": "string", + "readOnly": true + }, + "relationType": { + "description": "The type of the hunt relation", + "type": "string", + "readOnly": true + }, + "relatedResourceKind": { + "description": "The resource that the relation is related to", + "type": "string", + "readOnly": true + }, + "labels": { + "description": "List of labels relevant to this hunt", + "items": { + "$ref": "../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array" + } + }, + "required": [ + "relatedResourceId" + ], + "type": "object" + }, + "HuntCommentList": { + "description": "List of all hunt comments", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of hunt comments.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of hunt comments", + "items": { + "$ref": "#/definitions/HuntComment" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "HuntComment": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Hunt Comment in Azure Security Insights", + "properties": { + "properties": { + "$ref": "#/definitions/HuntCommentProperties", + "description": "Hunt Comment properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "HuntCommentProperties": { + "description": "Describes a hunt comment properties", + "properties": { + "message": { + "description": "The message for the comment", + "type": "string" + } + }, + "required": [ + "message" + ], + "type": "object" + }, + "HuntOwner": { + "description": "Describes a user that the hunt is assigned to", + "type": "object", + "properties": { + "email": { + "description": "The email of the user the hunt is assigned to.", + "type": "string" + }, + "assignedTo": { + "description": "The name of the user the hunt is assigned to.", + "type": "string" + }, + "objectId": { + "description": "The object id of the user the hunt is assigned to.", + "format": "uuid", + "type": "string", + "x-nullable": true + }, + "userPrincipalName": { + "description": "The user principal name of the user the hunt is assigned to.", + "type": "string" + }, + "ownerType": { + "description": "The type of the owner the hunt is assigned to.", + "type": "string", + "enum": [ + "Unknown", + "User", + "Group" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "OwnerType", + "values": [ + { + "description": "The hunt owner type is unknown", + "value": "Unknown" + }, + { + "description": "The hunt owner type is an AAD user", + "value": "User" + }, + { + "description": "The hunt owner type is an AAD group", + "value": "Group" + } + ] + } + } + } + } + }, + "parameters": { + "Hunt": { + "description": "The hunt", + "name": "hunt", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Hunt" + }, + "x-ms-parameter-location": "method" + }, + "HuntId": { + "description": "The hunt id (GUID)", + "in": "path", + "name": "huntId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "HuntRelation": { + "description": "The hunt relation", + "in": "body", + "name": "huntRelation", + "required": true, + "schema": { + "$ref": "#/definitions/HuntRelation" + }, + "x-ms-parameter-location": "method" + }, + "HuntRelationId": { + "description": "The hunt relation id (GUID)", + "in": "path", + "name": "huntRelationId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "HuntComment": { + "description": "The hunt comment", + "in": "body", + "name": "huntComment", + "required": true, + "schema": { + "$ref": "#/definitions/HuntComment" + }, + "x-ms-parameter-location": "method" + }, + "HuntCommentId": { + "description": "The hunt comment id (GUID)", + "in": "path", + "name": "huntCommentId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Incidents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Incidents.json new file mode 100644 index 000000000000..94dce600b7e6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Incidents.json @@ -0,0 +1,1669 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents": { + "get": { + "tags": [ + "Incidents" + ], + "description": "Gets all incidents.", + "operationId": "Incidents_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Incidents_List": { + "$ref": "./examples/incidents/Incidents_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}": { + "get": { + "tags": [ + "Incidents" + ], + "description": "Gets an incident.", + "operationId": "Incidents_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Incident" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_Get": { + "$ref": "./examples/incidents/Incidents_Get.json" + } + } + }, + "put": { + "tags": [ + "Incidents" + ], + "description": "Creates or updates the incident.", + "operationId": "Incidents_CreateOrUpdate", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/Incident" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Incident" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Incident" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_CreateOrUpdate": { + "$ref": "./examples/incidents/Incidents_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "Incidents" + ], + "description": "Delete the incident.", + "operationId": "Incidents_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_Delete": { + "$ref": "./examples/incidents/Incidents_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/createTeam": { + "post": { + "tags": [ + "IncidentTeam" + ], + "description": "Creates a Microsoft team to investigate the incident by sharing information and insights between participants.", + "operationId": "Incidents_CreateTeam", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/TeamProperties" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TeamInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_CreateTeam": { + "$ref": "./examples/incidents/IncidentTeam/Incidents_CreateTeam.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/alerts": { + "post": { + "tags": [ + "IncidentAlerts" + ], + "description": "Gets all incident alerts.", + "operationId": "Incidents_ListAlerts", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentAlertList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_ListAlerts": { + "$ref": "./examples/incidents/IncidentAlerts/Incidents_ListAlerts.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/bookmarks": { + "post": { + "tags": [ + "IncidentBookmarks" + ], + "description": "Gets all incident bookmarks.", + "operationId": "Incidents_ListBookmarks", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentBookmarkList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_ListBookmarks": { + "$ref": "./examples/incidents/IncidentBookmarks/Incidents_ListBookmarks.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/comments": { + "get": { + "tags": [ + "IncidentComments" + ], + "description": "Gets all incident comments.", + "operationId": "IncidentComments_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentCommentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "IncidentComments_List": { + "$ref": "./examples/incidents/IncidentComments/IncidentComments_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/comments/{incidentCommentId}": { + "get": { + "tags": [ + "IncidentComments" + ], + "description": "Gets an incident comment.", + "operationId": "IncidentComments_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentCommentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentComment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentComments_Get": { + "$ref": "./examples/incidents/IncidentComments/IncidentComments_Get.json" + } + } + }, + "put": { + "tags": [ + "IncidentComments" + ], + "description": "Creates or updates the incident comment.", + "operationId": "IncidentComments_CreateOrUpdate", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentCommentId" + }, + { + "$ref": "#/parameters/IncidentComment" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentComment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/IncidentComment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentComments_CreateOrUpdate": { + "$ref": "./examples/incidents/IncidentComments/IncidentComments_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "IncidentComments" + ], + "description": "Delete the incident comment.", + "operationId": "IncidentComments_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentCommentId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentComments_Delete": { + "$ref": "./examples/incidents/IncidentComments/IncidentComments_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/entities": { + "post": { + "tags": [ + "IncidentEntities" + ], + "description": "Gets all incident related entities.", + "operationId": "Incidents_ListEntities", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentEntitiesResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Incidents_ListEntities": { + "$ref": "./examples/incidents/IncidentEntities/Incidents_ListEntities.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/relations": { + "get": { + "x-ms-examples": { + "Get all incident relations.": { + "$ref": "./examples/incidents/relations/GetAllIncidentRelations.json" + } + }, + "tags": [ + "IncidentRelations" + ], + "description": "Gets all incident relations.", + "operationId": "IncidentRelations_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/RelationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-odata": "./common/RelationTypes.json#/definitions/Relation", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/relations/{relationName}": { + "get": { + "x-ms-examples": { + "Get an incident relation.": { + "$ref": "./examples/incidents/relations/GetIncidentRelationByName.json" + } + }, + "tags": [ + "IncidentRelations" + ], + "description": "Gets an incident relation.", + "operationId": "IncidentRelations_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates an incident relation.": { + "$ref": "./examples/incidents/relations/CreateIncidentRelation.json" + } + }, + "tags": [ + "IncidentRelations" + ], + "description": "Creates or updates the incident relation.", + "operationId": "IncidentRelations_CreateOrUpdate", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/Relation" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "./common/RelationTypes.json#/definitions/Relation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete the incident relation.": { + "$ref": "./examples/incidents/relations/DeleteIncidentRelation.json" + } + }, + "tags": [ + "IncidentRelations" + ], + "description": "Delete the incident relation.", + "operationId": "IncidentRelations_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "./common/RelationTypes.json#/parameters/RelationName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks": { + "get": { + "tags": [ + "IncidentTasks" + ], + "description": "Gets all incident tasks.", + "operationId": "IncidentTasks_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentTaskList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "IncidentTasks_List": { + "$ref": "./examples/incidents/IncidentTasks/IncidentTasks_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/incidents/{incidentId}/tasks/{incidentTaskId}": { + "get": { + "tags": [ + "IncidentTasks" + ], + "description": "Gets an incident task.", + "operationId": "IncidentTasks_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentTaskId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentTask" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentTasks_Get": { + "$ref": "./examples/incidents/IncidentTasks/IncidentTasks_Get.json" + } + } + }, + "put": { + "tags": [ + "IncidentTasks" + ], + "description": "Creates or updates the incident task.", + "operationId": "IncidentTasks_CreateOrUpdate", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentTaskId" + }, + { + "$ref": "#/parameters/IncidentTask" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IncidentTask" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/IncidentTask" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentTasks_CreateOrUpdate": { + "$ref": "./examples/incidents/IncidentTasks/IncidentTasks_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "IncidentTasks" + ], + "description": "Delete the incident task.", + "operationId": "IncidentTasks_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/IncidentId" + }, + { + "$ref": "#/parameters/IncidentTaskId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "IncidentTasks_Delete": { + "$ref": "./examples/incidents/IncidentTasks/IncidentTasks_Delete.json" + } + } + } + } + }, + "definitions": { + "Incident": { + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/IncidentProperties", + "x-ms-client-flatten": true + } + } + }, + "IncidentAdditionalData": { + "description": "Incident additional data property bag.", + "type": "object", + "properties": { + "alertsCount": { + "format": "int32", + "description": "The number of alerts in the incident", + "type": "integer", + "readOnly": true + }, + "bookmarksCount": { + "format": "int32", + "description": "The number of bookmarks in the incident", + "type": "integer", + "readOnly": true + }, + "commentsCount": { + "format": "int32", + "description": "The number of comments in the incident", + "type": "integer", + "readOnly": true + }, + "alertProductNames": { + "description": "List of product names of alerts in the incident", + "type": "array", + "items": { + "description": "Alert product name", + "type": "string" + }, + "readOnly": true + }, + "tactics": { + "description": "The tactics associated with incident", + "type": "array", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "readOnly": true + }, + "techniques": { + "description": "The techniques associated with incident's tactics", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "providerIncidentUrl": { + "description": "The provider incident url to the incident in Microsoft 365 Defender portal", + "type": "string", + "readOnly": true + } + } + }, + "IncidentAlertList": { + "description": "List of incident alerts.", + "type": "object", + "properties": { + "value": { + "description": "Array of incident alerts.", + "type": "array", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/SecurityAlert" + } + } + }, + "required": [ + "value" + ] + }, + "IncidentBookmarkList": { + "description": "List of incident bookmarks.", + "type": "object", + "properties": { + "value": { + "description": "Array of incident bookmarks.", + "type": "array", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/HuntingBookmark" + } + } + }, + "required": [ + "value" + ] + }, + "IncidentComment": { + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents an incident comment", + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/IncidentCommentProperties", + "description": "Incident comment properties", + "x-ms-client-flatten": true + } + } + }, + "IncidentCommentList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentComment" + } + }, + "nextLink": { + "type": "string", + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "IncidentCommentProperties": { + "description": "Incident comment property bag.", + "required": [ + "message" + ], + "type": "object", + "properties": { + "message": { + "description": "The comment message", + "type": "string" + }, + "createdTimeUtc": { + "format": "date-time", + "description": "The time the comment was created", + "type": "string", + "readOnly": true + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "description": "The time the comment was updated", + "type": "string", + "readOnly": true + }, + "author": { + "type": "object", + "$ref": "../../../common/2.0/types.json#/definitions/ClientInfo", + "description": "Describes the client that created the comment", + "readOnly": true + } + } + }, + "IncidentEntitiesResponse": { + "description": "The incident related entities response.", + "type": "object", + "properties": { + "entities": { + "description": "Array of the incident related entities.", + "type": "array", + "items": { + "$ref": "./common/EntityTypes.json#/definitions/Entity" + } + }, + "metaData": { + "description": "The metadata from the incident related entities results.", + "type": "array", + "items": { + "$ref": "#/definitions/IncidentEntitiesResultsMetadata" + } + } + } + }, + "IncidentEntitiesResultsMetadata": { + "description": "Information of a specific aggregation in the incident related entities result.", + "required": [ + "count", + "entityKind" + ], + "type": "object", + "properties": { + "entityKind": { + "description": "The kind of the aggregated entity.", + "$ref": "./common/EntityTypes.json#/definitions/EntityInnerKind" + }, + "count": { + "format": "int32", + "description": "Total number of aggregations of the given kind in the incident related entities result.", + "type": "integer" + } + } + }, + "IncidentList": { + "required": [ + "value" + ], + "description": "List all the incidents.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Incident" + } + }, + "nextLink": { + "description": "URL to fetch the next set of incidents.", + "type": "string", + "readOnly": true + } + } + }, + "IncidentProperties": { + "required": [ + "severity", + "status", + "title" + ], + "type": "object", + "properties": { + "title": { + "description": "The title of the incident", + "type": "string" + }, + "description": { + "description": "The description of the incident", + "type": "string" + }, + "severity": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentSeverityEnum" + }, + "status": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentStatusEnum" + }, + "classification": { + "description": "The reason the incident was closed", + "$ref": "./common/IncidentTypes.json#/definitions/IncidentClassificationEnum" + }, + "classificationReason": { + "description": "The classification reason the incident was closed with", + "$ref": "./common/IncidentTypes.json#/definitions/IncidentClassificationReasonEnum" + }, + "classificationComment": { + "description": "Describes the reason the incident was closed", + "type": "string" + }, + "owner": { + "type": "object", + "description": "Describes a user that the incident is assigned to", + "$ref": "./common/IncidentTypes.json#/definitions/IncidentOwnerInfo" + }, + "labels": { + "description": "List of labels relevant to this incident", + "type": "array", + "items": { + "$ref": "./common/IncidentTypes.json#/definitions/IncidentLabel" + } + }, + "firstActivityTimeUtc": { + "format": "date-time", + "description": "The time of the first activity in the incident", + "type": "string" + }, + "lastActivityTimeUtc": { + "format": "date-time", + "description": "The time of the last activity in the incident", + "type": "string" + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "description": "The last time the incident was updated", + "type": "string", + "readOnly": true + }, + "createdTimeUtc": { + "format": "date-time", + "description": "The time the incident was created", + "type": "string", + "readOnly": true + }, + "incidentNumber": { + "format": "int32", + "description": "A sequential number", + "type": "integer", + "readOnly": true + }, + "additionalData": { + "$ref": "#/definitions/IncidentAdditionalData", + "description": "Additional data on the incident", + "readOnly": true, + "type": "object" + }, + "relatedAnalyticRuleIds": { + "description": "List of resource ids of Analytic rules related to the incident", + "type": "array", + "items": { + "description": "Related Analytic rule resource id", + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "scopes": [ + "Extension" + ], + "type": "Microsoft.SecurityInsights/alertRules" + } + ] + } + }, + "readOnly": true + }, + "incidentUrl": { + "description": "The deep-link url to the incident in Azure portal", + "type": "string", + "readOnly": true + }, + "providerName": { + "description": "The name of the source provider that generated the incident", + "type": "string", + "readOnly": true + }, + "providerIncidentId": { + "description": "The incident ID assigned by the incident provider", + "type": "string", + "readOnly": true + }, + "teamInformation": { + "$ref": "#/definitions/TeamInformation", + "description": "Describes a team for the incident", + "type": "object" + } + } + }, + "IncidentTask": { + "required": [ + "properties" + ], + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/IncidentTaskProperties", + "x-ms-client-flatten": true + } + } + }, + "IncidentTaskList": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentTask" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "IncidentTaskProperties": { + "required": [ + "status", + "title" + ], + "type": "object", + "properties": { + "title": { + "description": "The title of the task", + "type": "string" + }, + "description": { + "description": "The description of the task", + "type": "string" + }, + "status": { + "$ref": "#/definitions/IncidentTaskStatus" + }, + "createdTimeUtc": { + "format": "date-time", + "description": "The time the task was created", + "type": "string", + "readOnly": true + }, + "lastModifiedTimeUtc": { + "format": "date-time", + "description": "The last time the task was updated", + "type": "string", + "readOnly": true + }, + "createdBy": { + "type": "object", + "$ref": "../../../common/2.0/types.json#/definitions/ClientInfo" + }, + "lastModifiedBy": { + "type": "object", + "$ref": "../../../common/2.0/types.json#/definitions/ClientInfo" + } + } + }, + "IncidentTaskStatus": { + "enum": [ + "New", + "Completed" + ], + "type": "string", + "example": "New", + "x-ms-enum": { + "name": "IncidentTaskStatus", + "modelAsString": true, + "values": [ + { + "value": "New", + "description": "A new task" + }, + { + "value": "Completed", + "description": "A completed task" + } + ] + } + }, + "TeamInformation": { + "description": "Describes team information", + "type": "object", + "properties": { + "teamId": { + "description": "Team ID", + "type": "string", + "readOnly": true + }, + "primaryChannelUrl": { + "description": "The primary channel URL of the team", + "type": "string", + "readOnly": true + }, + "teamCreationTimeUtc": { + "format": "date-time", + "description": "The time the team was created", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The name of the team", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description of the team", + "type": "string", + "readOnly": true + } + } + }, + "TeamProperties": { + "description": "Describes team properties", + "required": [ + "teamName" + ], + "type": "object", + "properties": { + "teamName": { + "description": "The name of the team", + "type": "string" + }, + "teamDescription": { + "description": "The description of the team", + "type": "string" + }, + "groupIds": { + "description": "List of group IDs to add their members to the team", + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "memberIds": { + "description": "List of member IDs to add to the team", + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + } + }, + "parameters": { + "Incident": { + "name": "incident", + "description": "The incident", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/Incident" + } + }, + "IncidentId": { + "in": "path", + "name": "incidentId", + "description": "Incident ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "IncidentComment": { + "name": "incidentComment", + "description": "The incident comment", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/IncidentComment" + } + }, + "IncidentCommentId": { + "in": "path", + "name": "incidentCommentId", + "description": "Incident comment ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + }, + "TeamProperties": { + "name": "teamProperties", + "description": "Team properties", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/TeamInformation" + } + }, + "IncidentTask": { + "name": "incidentTask", + "description": "The incident task", + "required": true, + "in": "body", + "x-ms-parameter-location": "method", + "schema": { + "$ref": "#/definitions/IncidentTask" + } + }, + "IncidentTaskId": { + "in": "path", + "name": "incidentTaskId", + "description": "Incident task ID", + "required": true, + "x-ms-parameter-location": "method", + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Metadata.json new file mode 100644 index 000000000000..6d0e32131c8d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Metadata.json @@ -0,0 +1,774 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/metadata": { + "get": { + "x-ms-examples": { + "Get all metadata.": { + "$ref": "./examples/metadata/GetAllMetadata.json" + }, + "Get all metadata with OData filter/orderby/skip/top": { + "$ref": "./examples/metadata/GetAllMetadataOData.json" + } + }, + "tags": [ + "Metadata" + ], + "description": "List of all metadata", + "operationId": "Metadata_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkip" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/MetadataList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/metadata/{metadataName}": { + "get": { + "x-ms-examples": { + "Get single metadata by name": { + "$ref": "./examples/metadata/GetMetadata.json" + } + }, + "tags": [ + "Metadata" + ], + "description": "Get a Metadata.", + "operationId": "Metadata_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/MetadataName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/MetadataModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete metadata.": { + "$ref": "./examples/metadata/DeleteMetadata.json" + } + }, + "tags": [ + "Metadata" + ], + "description": "Delete a Metadata.", + "operationId": "Metadata_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/MetadataName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create/update full metadata.": { + "$ref": "./examples/metadata/PutMetadata.json" + }, + "Create/update minimal metadata.": { + "$ref": "./examples/metadata/PutMetadataMinimal.json" + } + }, + "tags": [ + "Metadata" + ], + "description": "Create a Metadata.", + "operationId": "Metadata_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/MetadataName" + }, + { + "$ref": "#/parameters/Metadata" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed", + "schema": { + "$ref": "#/definitions/MetadataModel" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/MetadataModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "patch": { + "x-ms-examples": { + "Update metadata.": { + "$ref": "./examples/metadata/PatchMetadata.json" + } + }, + "tags": [ + "Metadata" + ], + "description": "Update an existing Metadata.", + "operationId": "Metadata_Update", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/MetadataName" + }, + { + "$ref": "#/parameters/MetadataPatch" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/MetadataModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "MetadataList": { + "description": "List of all the metadata.", + "type": "object", + "properties": { + "value": { + "description": "Array of metadata.", + "items": { + "$ref": "#/definitions/MetadataModel" + }, + "type": "array" + }, + "nextLink": { + "description": "URL to fetch the next page of metadata.", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "MetadataModel": { + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Metadata resource definition.", + "properties": { + "properties": { + "$ref": "#/definitions/metadataProperties", + "description": "Metadata properties", + "x-ms-client-flatten": true + } + } + }, + "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Metadata patch request body.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/metadataPropertiesPatch", + "description": "Metadata patch request body", + "x-ms-client-flatten": true + } + } + }, + "metadataContentId": { + "description": "Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Can be optionally set for user created content to define dependencies. If an active content item is made from a template, both will have the same contentId.", + "type": "string" + }, + "metadataParentId": { + "description": "Full parent resource ID of the content item the metadata is for. This is the full resource ID including the scope (subscription and resource group)", + "type": "string" + }, + "metadataVersion": { + "description": "Version of the content. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM template best practices. Can also be any string, but then we cannot guarantee any version checks", + "type": "string" + }, + "metadataKind": { + "type": "string", + "description": "The kind of content the metadata is for." + }, + "metadataSource": { + "description": "The original source of the content item, where it comes from.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Source type of the content", + "type": "string", + "enum": [ + "LocalWorkspace", + "Community", + "Solution", + "SourceRepository" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "sourceKind", + "values": [ + { + "value": "LocalWorkspace" + }, + { + "value": "Community" + }, + { + "value": "Solution" + }, + { + "value": "SourceRepository" + } + ] + } + }, + "name": { + "description": "Name of the content source. The repo name, solution name, LA workspace name etc.", + "type": "string" + }, + "sourceId": { + "description": "ID of the content source. The solution ID, workspace ID, etc", + "type": "string" + } + } + }, + "metadataAuthor": { + "type": "object", + "description": "Publisher or creator of the content item.", + "properties": { + "name": { + "description": "Name of the author. Company or person.", + "type": "string" + }, + "email": { + "description": "Email of author contact", + "type": "string" + }, + "link": { + "description": "Link for author/vendor page", + "type": "string" + } + } + }, + "metadataSupport": { + "type": "object", + "description": "Support information for the content item.", + "required": [ + "tier" + ], + "properties": { + "tier": { + "description": "Type of support for content item", + "type": "string", + "enum": [ + "Microsoft", + "Partner", + "Community" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "supportTier", + "values": [ + { + "value": "Microsoft" + }, + { + "value": "Partner" + }, + { + "value": "Community" + } + ] + } + }, + "name": { + "description": "Name of the support contact. Company or person.", + "type": "string" + }, + "email": { + "description": "Email of support contact", + "type": "string" + }, + "link": { + "description": "Link for support help, like to support page to open a ticket etc.", + "type": "string" + } + } + }, + "metadataCategories": { + "type": "object", + "description": "ies for the solution content item", + "properties": { + "domains": { + "description": "domain for the solution content item", + "type": "array", + "example": [ + "str1", + "str2", + "str3" + ], + "items": { + "type": "string" + } + }, + "verticals": { + "description": "Industry verticals for the solution content item", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "str1", + "str2", + "str3" + ] + } + } + }, + "metadataProviders": { + "description": "Providers for the solution content item", + "type": "array", + "example": [ + "str1", + "str2", + "str3" + ], + "items": { + "type": "string" + } + }, + "firstPublishDate": { + "description": "first publish date of solution content item", + "type": "string", + "format": "date" + }, + "lastPublishDate": { + "description": "last publish date of solution content item", + "type": "string", + "format": "date" + }, + "metadataCustomVersion": { + "description": "The custom version of the content. A optional free text", + "type": "string" + }, + "metadataContentSchemaVersion": { + "description": "Schema version of the content. Can be used to distinguish between different flow based on the schema version", + "type": "string" + }, + "metadataIcon": { + "description": "the icon identifier. this id can later be fetched from the solution template", + "type": "string" + }, + "metadataThreatAnalysisTactics": { + "description": "the tactics the resource covers", + "type": "array", + "example": [ + "reconnaissance", + "exfiltration" + ], + "items": { + "type": "string" + } + }, + "metadataThreatAnalysisTechniques": { + "description": "the techniques the resource covers, these have to be aligned with the tactics being used", + "type": "array", + "example": [ + "T1548", + "T1548.001", + "T1134.003" + ], + "items": { + "type": "string" + } + }, + "metadataPreviewImages": { + "description": "preview image file names. These will be taken from the solution artifacts", + "type": "array", + "example": [ + "example.png", + "example2.jpeg" + ], + "items": { + "type": "string" + } + }, + "metadataPreviewImagesDark": { + "description": "preview image file names. These will be taken from the solution artifacts. used for dark theme support", + "type": "array", + "example": [ + "example.png", + "example2.jpeg" + ], + "items": { + "type": "string" + } + }, + "metadataProperties": { + "description": "Metadata property bag.", + "required": [ + "parentId", + "kind" + ], + "type": "object", + "properties": { + "contentId": { + "$ref": "#/definitions/metadataContentId", + "description": "Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Dynamic for user-created. This is the resource name" + }, + "parentId": { + "$ref": "#/definitions/metadataParentId", + "description": "Full parent resource ID of the content item the metadata is for. This is the full resource ID including the scope (subscription and resource group)" + }, + "version": { + "$ref": "#/definitions/metadataVersion", + "description": "Version of the content. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM template best practices. Can also be any string, but then we cannot guarantee any version checks" + }, + "kind": { + "$ref": "#/definitions/metadataKind", + "description": "The kind of content the metadata is for." + }, + "source": { + "$ref": "#/definitions/metadataSource", + "description": "Source of the content. This is where/how it was created." + }, + "author": { + "$ref": "#/definitions/metadataAuthor", + "description": "The creator of the content item." + }, + "support": { + "$ref": "#/definitions/metadataSupport", + "description": "Support information for the metadata - type, name, contact information" + }, + "dependencies": { + "$ref": "./common/ContentCommonTypes.json#/definitions/metadataDependencies", + "description": "Dependencies for the content item, what other content items it requires to work. Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats." + }, + "categories": { + "$ref": "#/definitions/metadataCategories", + "description": "Categories for the solution content item" + }, + "providers": { + "$ref": "#/definitions/metadataProviders", + "description": "Providers for the solution content item" + }, + "firstPublishDate": { + "$ref": "#/definitions/firstPublishDate", + "description": "first publish date solution content item" + }, + "lastPublishDate": { + "$ref": "#/definitions/lastPublishDate", + "description": "last publish date for the solution content item" + }, + "customVersion": { + "$ref": "#/definitions/metadataCustomVersion", + "description": "The custom version of the content. A optional free text" + }, + "contentSchemaVersion": { + "$ref": "#/definitions/metadataContentSchemaVersion", + "description": "Schema version of the content. Can be used to distinguish between different flow based on the schema version" + }, + "icon": { + "$ref": "#/definitions/metadataIcon", + "description": "the icon identifier. this id can later be fetched from the solution template" + }, + "threatAnalysisTactics": { + "$ref": "#/definitions/metadataThreatAnalysisTactics", + "description": "the tactics the resource covers" + }, + "threatAnalysisTechniques": { + "$ref": "#/definitions/metadataThreatAnalysisTechniques", + "description": "the techniques the resource covers, these have to be aligned with the tactics being used" + }, + "previewImages": { + "$ref": "#/definitions/metadataPreviewImages", + "description": "preview image file names. These will be taken from the solution artifacts" + }, + "previewImagesDark": { + "$ref": "#/definitions/metadataPreviewImagesDark", + "description": "preview image file names. These will be taken from the solution artifacts. used for dark theme support" + } + } + }, + "metadataPropertiesPatch": { + "description": "Metadata property bag for patch requests. This is the same as the MetadataProperties, but with nothing required", + "type": "object", + "properties": { + "contentId": { + "$ref": "#/definitions/metadataContentId", + "description": "Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Dynamic for user-created. This is the resource name" + }, + "parentId": { + "$ref": "#/definitions/metadataParentId", + "description": "Full parent resource ID of the content item the metadata is for. This is the full resource ID including the scope (subscription and resource group)" + }, + "version": { + "$ref": "#/definitions/metadataVersion", + "description": "Version of the content. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM template best practices. Can also be any string, but then we cannot guarantee any version checks" + }, + "kind": { + "$ref": "#/definitions/metadataKind", + "description": "The kind of content the metadata is for." + }, + "source": { + "$ref": "#/definitions/metadataSource", + "description": "Source of the content. This is where/how it was created." + }, + "author": { + "$ref": "#/definitions/metadataAuthor", + "description": "The creator of the content item." + }, + "support": { + "$ref": "#/definitions/metadataSupport", + "description": "Support information for the metadata - type, name, contact information" + }, + "dependencies": { + "$ref": "./common/ContentCommonTypes.json#/definitions/metadataDependencies", + "description": "Dependencies for the content item, what other content items it requires to work. Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats." + }, + "categories": { + "$ref": "#/definitions/metadataCategories", + "description": "Categories for the solution content item" + }, + "providers": { + "$ref": "#/definitions/metadataProviders", + "description": "Providers for the solution content item" + }, + "firstPublishDate": { + "$ref": "#/definitions/firstPublishDate", + "description": "first publish date solution content item" + }, + "lastPublishDate": { + "$ref": "#/definitions/lastPublishDate", + "description": "last publish date for the solution content item" + }, + "customVersion": { + "$ref": "#/definitions/metadataCustomVersion", + "description": "The custom version of the content. A optional free text" + }, + "contentSchemaVersion": { + "$ref": "#/definitions/metadataContentSchemaVersion", + "description": "Schema version of the content. Can be used to distinguish between different flow based on the schema version" + }, + "icon": { + "$ref": "#/definitions/metadataIcon", + "description": "the icon identifier. this id can later be fetched from the solution template" + }, + "threatAnalysisTactics": { + "$ref": "#/definitions/metadataThreatAnalysisTactics", + "description": "the tactics the resource covers" + }, + "threatAnalysisTechniques": { + "$ref": "#/definitions/metadataThreatAnalysisTechniques", + "description": "the techniques the resource covers, these have to be aligned with the tactics being used" + }, + "previewImages": { + "$ref": "#/definitions/metadataPreviewImages", + "description": "preview image file names. These will be taken from the solution artifacts" + }, + "previewImagesDark": { + "$ref": "#/definitions/metadataPreviewImagesDark", + "description": "preview image file names. These will be taken from the solution artifacts. used for dark theme support" + } + } + } + }, + "parameters": { + "Metadata": { + "description": "Metadata resource.", + "in": "body", + "name": "metadata", + "required": true, + "schema": { + "$ref": "#/definitions/MetadataModel" + }, + "x-ms-parameter-location": "method" + }, + "MetadataPatch": { + "description": "Partial metadata request.", + "in": "body", + "name": "metadataPatch", + "required": true, + "schema": { + "$ref": "#/definitions/metadataPatch" + }, + "x-ms-parameter-location": "method" + }, + "MetadataName": { + "description": "The Metadata name.", + "in": "path", + "name": "metadataName", + "required": true, + "pattern": "^\\S+$", + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OfficeConsents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OfficeConsents.json new file mode 100644 index 000000000000..cd1758c08460 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OfficeConsents.json @@ -0,0 +1,234 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/officeConsents": { + "get": { + "x-ms-examples": { + "Get all office consents.": { + "$ref": "./examples/officeConsents/GetOfficeConsents.json" + } + }, + "tags": [ + "Office Consents" + ], + "description": "Gets all office365 consents.", + "operationId": "OfficeConsents_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OfficeConsentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/officeConsents/{consentId}": { + "get": { + "x-ms-examples": { + "Get an office consent.": { + "$ref": "./examples/officeConsents/GetOfficeConsentsById.json" + } + }, + "tags": [ + "Office Consents" + ], + "description": "Gets an office365 consent.", + "operationId": "OfficeConsents_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ConsentId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OfficeConsent" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete an office consent.": { + "$ref": "./examples/officeConsents/DeleteOfficeConsents.json" + } + }, + "tags": [ + "Office Consents" + ], + "description": "Delete the office365 consent.", + "operationId": "OfficeConsents_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ConsentId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "ConsentId": { + "description": "consent ID", + "in": "path", + "name": "consentId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "OfficeConsent": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "description": "Consent for Office365 tenant that already made.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeConsentProperties", + "description": "Office consent properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "OfficeConsentList": { + "description": "List of all the office365 consents.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of office consents.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of the consents.", + "items": { + "$ref": "#/definitions/OfficeConsent" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "OfficeConsentProperties": { + "description": "Consent property bag.", + "properties": { + "tenantId": { + "description": "The tenantId of the Office365 with the consent.", + "type": "string" + }, + "consentId": { + "description": "Help to easily cascade among the data layers.", + "type": "string" + } + }, + "type": "object" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OnboardingStates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OnboardingStates.json new file mode 100644 index 000000000000..59975870bc4c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/OnboardingStates.json @@ -0,0 +1,284 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/onboardingStates/{sentinelOnboardingStateName}": { + "get": { + "x-ms-examples": { + "Get Sentinel onboarding state": { + "$ref": "./examples/onboardingStates/GetSentinelOnboardingState.json" + } + }, + "tags": [ + "SentinelOnboardingStates" + ], + "description": "Get Sentinel onboarding state", + "operationId": "SentinelOnboardingStates_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SentinelOnboardingStateName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentinelOnboardingState" + } + }, + "default": { + "description": "Error in getting the Sentinel onboarding state", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create Sentinel onboarding state": { + "$ref": "./examples/onboardingStates/CreateSentinelOnboardingState.json" + } + }, + "tags": [ + "SentinelOnboardingStates" + ], + "description": "Create Sentinel onboarding state", + "operationId": "SentinelOnboardingStates_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SentinelOnboardingStateName" + }, + { + "$ref": "#/parameters/SentinelOnboardingStateParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentinelOnboardingState" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SentinelOnboardingState" + } + }, + "default": { + "description": "Error in creating the Sentinel onboarding state", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete Sentinel onboarding state": { + "$ref": "./examples/onboardingStates/DeleteSentinelOnboardingState.json" + } + }, + "tags": [ + "SentinelOnboardingStates" + ], + "description": "Delete Sentinel onboarding state", + "operationId": "SentinelOnboardingStates_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SentinelOnboardingStateName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error in deleting the Sentinel onboarding state", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/onboardingStates": { + "get": { + "x-ms-examples": { + "Get all Sentinel onboarding states": { + "$ref": "./examples/onboardingStates/GetAllSentinelOnboardingStates.json" + } + }, + "tags": [ + "SentinelOnboardingStates" + ], + "description": "Gets all Sentinel onboarding states", + "operationId": "SentinelOnboardingStates_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SentinelOnboardingStatesList" + } + }, + "default": { + "description": "Error in listing the Sentinel onboarding states", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "SentinelOnboardingStateProperties": { + "description": "The Sentinel onboarding state properties", + "type": "object", + "properties": { + "customerManagedKey": { + "description": "Flag that indicates the status of the CMK setting", + "type": "boolean" + } + } + }, + "SentinelOnboardingState": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Sentinel onboarding state", + "properties": { + "properties": { + "$ref": "#/definitions/SentinelOnboardingStateProperties", + "description": "The Sentinel onboarding state object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "SentinelOnboardingStatesList": { + "description": "List of the Sentinel onboarding states", + "properties": { + "value": { + "description": "Array of Sentinel onboarding states", + "items": { + "$ref": "#/definitions/SentinelOnboardingState" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + } + }, + "parameters": { + "SentinelOnboardingStateName": { + "description": "The Sentinel onboarding state name. Supports - default", + "in": "path", + "name": "sentinelOnboardingStateName", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SentinelOnboardingStateParameter": { + "description": "The Sentinel onboarding state parameter", + "in": "body", + "name": "sentinelOnboardingStateParameter", + "required": false, + "schema": { + "$ref": "#/definitions/SentinelOnboardingState" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Recommendations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Recommendations.json new file mode 100644 index 000000000000..fefc18ae150a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Recommendations.json @@ -0,0 +1,452 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations": { + "get": { + "x-ms-examples": { + "Get Recommendations list.": { + "$ref": "./examples/recommendations/GetRecommendations.json" + } + }, + "tags": [ + "recommendations" + ], + "description": "Gets a list of all recommendations.", + "operationId": "GetRecommendations_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RecommendationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}": { + "get": { + "x-ms-examples": { + "Get a recommendation.": { + "$ref": "./examples/recommendations/GetRecommendation.json" + } + }, + "tags": [ + "recommendations" + ], + "description": "Gets a recommendation by its id.", + "operationId": "Get_SingleRecommendation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RecommendationId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Recommendation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "patch": { + "x-ms-examples": { + "Creates a recommendation.": { + "$ref": "./examples/recommendations/PatchRecommendation.json" + } + }, + "tags": [ + "recommendations" + ], + "description": "Patch a recommendation.", + "operationId": "Update_Recommendation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RecommendationId" + }, + { + "$ref": "#/parameters/RecommendationPatch" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Recommendation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/recommendations/{recommendationId}/triggerEvaluation": { + "post": { + "x-ms-examples": { + "Reevaluate a recommendation.": { + "$ref": "./examples/recommendations/ReevaluateRecommendation.json" + } + }, + "tags": [ + "recommendations" + ], + "description": "Reevaluate a recommendation.", + "operationId": "Reevaluate_Recommendation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RecommendationId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReevaluateResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "Recommendation": { + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Recommendation object.", + "properties": { + "properties": { + "type": "object", + "$ref": "#/definitions/RecommendationProperties", + "x-ms-client-flatten": true + } + } + }, + "RecommendationProperties": { + "description": "Recommendation properties object.", + "properties": { + "recommendationTypeId": { + "description": "Id of the recommendation type.", + "type": "string" + }, + "state": { + "description": "State of the recommendation.", + "$ref": "#/definitions/RecommendationState" + }, + "title": { + "description": "Title of the recommendation.", + "type": "string" + }, + "description": { + "description": "Description of the recommendation.", + "type": "string" + }, + "creationTimeUtc": { + "description": "The time stamp (UTC) when the recommendation was created.", + "type": "string", + "format": "date-time" + }, + "lastEvaluatedTimeUtc": { + "description": "The time stamp (UTC) when the recommendation was last evaluated.", + "type": "string", + "format": "date-time" + }, + "lastModifiedTimeUtc": { + "description": "The time stamp (UTC) when the recommendation was last modified.", + "type": "string", + "format": "date-time" + }, + "suggestions": { + "description": "List of suggestions to take for this recommendation.", + "type": "array", + "items": { + "$ref": "#/definitions/RecommendedSuggestion" + }, + "x-ms-identifiers": [] + }, + "resourceId": { + "description": "Id of the resource this recommendation refers to.", + "type": "string", + "x-nullable": true + }, + "additionalProperties": { + "description": "Collection of additional properties for the recommendation.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-nullable": true + } + }, + "required": [ + "recommendationTypeId", + "state", + "title", + "description", + "creationTimeUtc", + "lastEvaluatedTimeUtc", + "lastModifiedTimeUtc", + "suggestions" + ], + "type": "object" + }, + "RecommendationList": { + "description": "A list of recommendations", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Recommendation" + }, + "description": "An list of recommendations" + }, + "nextLink": { + "description": "Link to next page of resources.", + "type": "string", + "readOnly": true + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "RecommendedSuggestion": { + "description": "What suggestions should be taken to complete the recommendation.", + "properties": { + "suggestionTypeId": { + "description": "Id of the suggestion type.", + "type": "string" + }, + "title": { + "description": "Title of the suggestion.", + "type": "string" + }, + "description": { + "description": "Description of the suggestion.", + "type": "string" + }, + "action": { + "description": "Action of the suggestion.", + "type": "string" + }, + "additionalProperties": { + "description": "Collection of additional properties for the suggestion.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-nullable": true + } + }, + "required": [ + "suggestionTypeId", + "title", + "description", + "action" + ], + "type": "object" + }, + "RecommendationPatch": { + "description": "Recommendation Fields to update.", + "properties": { + "properties": { + "$ref": "#/definitions/RecommendationPatchProperties" + } + }, + "type": "object" + }, + "RecommendationPatchProperties": { + "description": "Recommendation Fields Properties to update.", + "properties": { + "state": { + "description": "State of the recommendation.", + "$ref": "#/definitions/RecommendationState" + } + }, + "type": "object" + }, + "RecommendationState": { + "description": "State of recommendation.", + "type": "string", + "enum": [ + "Active", + "InProgress", + "Dismissed", + "CompletedByUser", + "CompletedBySystem" + ], + "x-ms-enum": { + "name": "State", + "modelAsString": true, + "values": [ + { + "value": "Active", + "description": "Recommendation is active." + }, + { + "value": "InProgress", + "description": "Recommendation is in progress." + }, + { + "value": "Dismissed", + "description": "Recommendation has been dismissed." + }, + { + "value": "CompletedByUser", + "description": "Recommendation has been completed by user." + }, + { + "value": "CompletedBySystem", + "description": "Recommendation has been completed by the system." + } + ] + } + }, + "ReevaluateResponse": { + "description": "Reevaluate response object.", + "properties": { + "lastEvaluatedTimeUtc": { + "description": "The time stamp (UTC) when the recommendation was last evaluated.", + "type": "string", + "format": "date-time" + } + }, + "type": "object" + } + }, + "parameters": { + "RecommendationId": { + "description": "Recommendation Id.", + "in": "path", + "name": "recommendationId", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "RecommendationPatch": { + "description": "Recommendation Fields to Update.", + "in": "body", + "name": "recommendationPatch", + "required": true, + "schema": { + "type": "object", + "$ref": "#/definitions/RecommendationPatch", + "x-ms-identifiers": [] + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SecurityMLAnalyticsSettings.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SecurityMLAnalyticsSettings.json new file mode 100644 index 000000000000..c4207cf2e5ea --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SecurityMLAnalyticsSettings.json @@ -0,0 +1,444 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings": { + "get": { + "x-ms-examples": { + "Get all Security ML Analytics Settings.": { + "$ref": "./examples/securityMLAnalyticsSettings/GetAllSecurityMLAnalyticsSettings.json" + } + }, + "tags": [ + "Security ML Analytics Settings" + ], + "description": "Gets all Security ML Analytics Settings.", + "operationId": "SecurityMLAnalyticsSettings_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityMLAnalyticsSettingsList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings/{settingsResourceName}": { + "get": { + "x-ms-examples": { + "Get a Anomaly Security ML Analytics Settings.": { + "$ref": "./examples/securityMLAnalyticsSettings/GetAnomalySecurityMLAnalyticsSetting.json" + } + }, + "tags": [ + "Security ML Analytics Settings" + ], + "description": "Gets the Security ML Analytics Settings.", + "operationId": "SecurityMLAnalyticsSettings_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsResourceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a Anomaly Security ML Analytics Settings.": { + "$ref": "./examples/securityMLAnalyticsSettings/CreateAnomalySecurityMLAnalyticsSetting.json" + } + }, + "tags": [ + "Security ML Analytics Settings" + ], + "description": "Creates or updates the Security ML Analytics Settings.", + "operationId": "SecurityMLAnalyticsSettings_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsResourceName" + }, + { + "$ref": "#/parameters/SecurityMLAnalyticsSetting" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a Security ML Analytics Settings.": { + "$ref": "./examples/securityMLAnalyticsSettings/DeleteSecurityMLAnalyticsSetting.json" + } + }, + "tags": [ + "Security ML Analytics Settings" + ], + "description": "Delete the Security ML Analytics Settings.", + "operationId": "SecurityMLAnalyticsSettings_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsResourceName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "SecurityMLAnalyticsSetting": { + "description": "The security ML Analytics setting", + "in": "body", + "name": "securityMLAnalyticsSetting", + "required": true, + "schema": { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + }, + "x-ms-parameter-location": "method" + }, + "SettingsResourceName": { + "description": "Security ML Analytics Settings resource name", + "in": "path", + "name": "settingsResourceName", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "SecurityMLAnalyticsSetting": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Security ML Analytics Setting", + "properties": { + "kind": { + "$ref": "#/definitions/SecurityMLAnalyticsSettingsKindEnum", + "description": "The kind of security ML Analytics Settings" + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "SecurityMLAnalyticsSettingsKindEnum": { + "description": "The kind of security ML analytics settings", + "enum": [ + "Anomaly" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "SecurityMLAnalyticsSettingsKind", + "values": [ + { + "value": "Anomaly" + } + ] + } + }, + "SecurityMLAnalyticsSettingsList": { + "description": "List all the SecurityMLAnalyticsSettings", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of SecurityMLAnalyticsSettings.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of SecurityMLAnalyticsSettings", + "items": { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "AnomalySecurityMLAnalyticsSettings": { + "allOf": [ + { + "$ref": "#/definitions/SecurityMLAnalyticsSetting" + } + ], + "description": "Represents Anomaly Security ML Analytics Settings", + "properties": { + "properties": { + "$ref": "#/definitions/AnomalySecurityMLAnalyticsSettingsProperties", + "description": "Anomaly Security ML Analytics Settings properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Anomaly" + }, + "AnomalySecurityMLAnalyticsSettingsProperties": { + "description": "AnomalySecurityMLAnalytics settings base property bag.", + "properties": { + "description": { + "description": "The description of the SecurityMLAnalyticsSettings.", + "type": "string" + }, + "displayName": { + "description": "The display name for settings created by this SecurityMLAnalyticsSettings.", + "type": "string" + }, + "enabled": { + "description": "Determines whether this settings is enabled or disabled.", + "type": "boolean" + }, + "lastModifiedUtc": { + "description": "The last time that this SecurityMLAnalyticsSettings has been modified.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this SecurityMLAnalyticsSettings", + "items": { + "$ref": "#/definitions/SecurityMLAnalyticsSettingsDataSource" + }, + "x-ms-identifiers": [ + "connectorId" + ], + "type": "array" + }, + "tactics": { + "description": "The tactics of the SecurityMLAnalyticsSettings", + "items": { + "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" + }, + "type": "array" + }, + "techniques": { + "description": "The techniques of the SecurityMLAnalyticsSettings", + "items": { + "type": "string" + }, + "type": "array" + }, + "anomalyVersion": { + "description": "The anomaly version of the AnomalySecurityMLAnalyticsSettings.", + "type": "string" + }, + "customizableObservations": { + "description": "The customizable observations of the AnomalySecurityMLAnalyticsSettings.", + "type": "object" + }, + "frequency": { + "description": "The frequency that this SecurityMLAnalyticsSettings will be run.", + "format": "duration", + "type": "string" + }, + "settingsStatus": { + "$ref": "#/definitions/AnomalySecurityMLAnalyticsSettingsStatus", + "description": "The anomaly SecurityMLAnalyticsSettings status" + }, + "isDefaultSettings": { + "description": "Determines whether this anomaly security ml analytics settings is a default settings", + "type": "boolean" + }, + "anomalySettingsVersion": { + "description": "The anomaly settings version of the Anomaly security ml analytics settings that dictates whether job version gets updated or not.", + "type": "integer", + "format": "int32" + }, + "settingsDefinitionId": { + "description": "The anomaly settings definition Id", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "displayName", + "enabled", + "anomalyVersion", + "frequency", + "settingsStatus", + "isDefaultSettings" + ], + "type": "object" + }, + "SecurityMLAnalyticsSettingsDataSource": { + "description": "security ml analytics settings data sources", + "properties": { + "connectorId": { + "description": "The connector id that provides the following data types", + "type": "string" + }, + "dataTypes": { + "description": "The data types used by the security ml analytics settings", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AnomalySecurityMLAnalyticsSettingsStatus": { + "description": "The anomaly SecurityMLAnalyticsSettings status", + "enum": [ + "Production", + "Flighting" + ], + "type": "string", + "x-ms-enum": { + "name": "SettingsStatus", + "modelAsString": true, + "values": [ + { + "description": "Anomaly settings status in Production mode", + "value": "Production" + }, + { + "description": "Anomaly settings status in Flighting mode", + "value": "Flighting" + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Settings.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Settings.json new file mode 100644 index 000000000000..ebe7873ea893 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Settings.json @@ -0,0 +1,438 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/settings": { + "get": { + "x-ms-examples": { + "Get all settings.": { + "$ref": "./examples/settings/GetAllSettings.json" + } + }, + "tags": [ + "Settings" + ], + "description": "List of all the settings", + "operationId": "ProductSettings_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SettingList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/settings/{settingsName}": { + "get": { + "x-ms-examples": { + "Get EyesOn settings.": { + "$ref": "./examples/settings/GetEyesOnSetting.json" + } + }, + "tags": [ + "Settings" + ], + "description": "Gets a setting.", + "operationId": "ProductSettings_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Settings" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete EyesOn settings.": { + "$ref": "./examples/settings/DeleteEyesOnSetting.json" + } + }, + "tags": [ + "Settings" + ], + "description": "Delete setting of the product.", + "operationId": "ProductSettings_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Update EyesOn settings.": { + "$ref": "./examples/settings/UpdateEyesOnSetting.json" + } + }, + "tags": [ + "Settings" + ], + "description": "Updates setting.", + "operationId": "ProductSettings_Update", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SettingsName" + }, + { + "$ref": "#/parameters/Settings" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Settings" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Settings" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "SettingList": { + "description": "List of all the settings.", + "properties": { + "value": { + "description": "Array of settings.", + "items": { + "$ref": "#/definitions/Settings" + }, + "type": "array" + }, + "nextLink": { + "description": "URL to fetch the next set of settings.", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "Settings": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "The Setting.", + "properties": { + "kind": { + "description": "The kind of the setting", + "enum": [ + "Anomalies", + "EyesOn", + "EntityAnalytics", + "Ueba" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "SettingKind" + } + } + }, + "required": [ + "kind" + ], + "discriminator": "kind", + "type": "object" + }, + "Anomalies": { + "allOf": [ + { + "$ref": "#/definitions/Settings" + } + ], + "description": "Settings with single toggle.", + "properties": { + "properties": { + "$ref": "#/definitions/AnomaliesSettingsProperties", + "description": "Anomalies properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Anomalies" + }, + "AnomaliesSettingsProperties": { + "description": "Anomalies property bag.", + "properties": { + "isEnabled": { + "description": "Determines whether the setting is enable or disabled.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "EyesOn": { + "allOf": [ + { + "$ref": "#/definitions/Settings" + } + ], + "description": "Settings with single toggle.", + "properties": { + "properties": { + "$ref": "#/definitions/EyesOnSettingsProperties", + "description": "EyesOn properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "EyesOn" + }, + "EyesOnSettingsProperties": { + "description": "EyesOn property bag.", + "properties": { + "isEnabled": { + "description": "Determines whether the setting is enable or disabled.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "EntityAnalytics": { + "allOf": [ + { + "$ref": "#/definitions/Settings" + } + ], + "description": "Settings with single toggle.", + "properties": { + "properties": { + "$ref": "#/definitions/EntityAnalyticsProperties", + "description": "EntityAnalytics properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "EntityAnalytics" + }, + "EntityAnalyticsProperties": { + "description": "EntityAnalytics property bag.", + "properties": { + "entityProviders": { + "description": "The relevant entity providers that are synced", + "items": { + "$ref": "#/definitions/EntityProviders" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntityProviders": { + "description": "The entity provider that is synced.", + "enum": [ + "ActiveDirectory", + "AzureActiveDirectory" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityProviders" + } + }, + "Ueba": { + "allOf": [ + { + "$ref": "#/definitions/Settings" + } + ], + "description": "Settings with single toggle.", + "properties": { + "properties": { + "$ref": "#/definitions/UebaProperties", + "description": "Ueba properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Ueba" + }, + "UebaProperties": { + "description": "Ueba property bag.", + "properties": { + "dataSources": { + "description": "The relevant data sources that enriched by ueba", + "items": { + "$ref": "#/definitions/UebaDataSources" + }, + "type": "array" + } + }, + "type": "object" + }, + "UebaDataSources": { + "description": "The data source that enriched by ueba.", + "enum": [ + "AuditLogs", + "AzureActivity", + "SecurityEvent", + "SigninLogs" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "UebaDataSources" + } + } + }, + "parameters": { + "Settings": { + "description": "The setting", + "in": "body", + "name": "settings", + "required": true, + "schema": { + "$ref": "#/definitions/Settings" + }, + "x-ms-parameter-location": "method" + }, + "SettingsName": { + "description": "The setting name. Supports - Anomalies, EyesOn, EntityAnalytics, Ueba", + "in": "path", + "name": "settingsName", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "pattern": "^[a-zA-Z][a-zA-Z0-9]*$" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SourceControls.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SourceControls.json new file mode 100644 index 000000000000..622a200e806c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/SourceControls.json @@ -0,0 +1,1005 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/listRepositories": { + "post": { + "x-ms-examples": { + "Get repository list.": { + "$ref": "./examples/repositories/GetRepositories.json" + } + }, + "tags": [ + "Repositories" + ], + "description": "Gets a list of repositories metadata.", + "operationId": "SourceControl_listRepositories", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RepositoryAccess" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RepoList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/sourcecontrols": { + "get": { + "x-ms-examples": { + "Get all source controls.": { + "$ref": "./examples/sourcecontrols/GetSourceControls.json" + } + }, + "tags": [ + "SourceControls" + ], + "description": "Gets all source controls, without source control items.", + "operationId": "SourceControls_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SourceControlList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/sourcecontrols/{sourceControlId}": { + "get": { + "x-ms-examples": { + "Get a source control.": { + "$ref": "./examples/sourcecontrols/GetSourceControlById.json" + } + }, + "tags": [ + "SourceControls" + ], + "description": "Gets a source control byt its identifier.", + "operationId": "SourceControls_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SourceControlIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a source control.": { + "$ref": "./examples/sourcecontrols/CreateSourceControl.json" + } + }, + "tags": [ + "SourceControls" + ], + "description": "Creates a source control.", + "operationId": "SourceControls_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SourceControlIdParameter" + }, + { + "$ref": "#/parameters/SourceControl" + } + ], + "responses": { + "200": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/sourcecontrols/{sourceControlId}/delete": { + "post": { + "x-ms-examples": { + "Delete a source control.": { + "$ref": "./examples/sourcecontrols/DeleteSourceControl.json" + } + }, + "tags": [ + "SourceControls" + ], + "description": "Delete a source control.", + "operationId": "SourceControls_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/SourceControlIdParameter" + }, + { + "$ref": "#/parameters/RepositoryAccess" + } + ], + "responses": { + "200": { + "description": "Source control deleted.", + "schema": { + "$ref": "#/definitions/Warning" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "RepoList": { + "description": "List all the source controls.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of repositories.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of repositories.", + "items": { + "$ref": "#/definitions/Repo" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "Repo": { + "description": "Represents a repository.", + "properties": { + "url": { + "description": "The url to access the repository.", + "type": "string" + }, + "fullName": { + "description": "The name of the repository.", + "type": "string" + }, + "installationId": { + "description": "The installation id of the repository.", + "type": "integer", + "format": "int64" + }, + "branches": { + "description": "Array of branches.", + "items": { + "description": "name of branch.", + "type": "string" + }, + "type": "array" + } + }, + "x-ms-azure-resource": false, + "type": "object" + }, + "SourceControlList": { + "description": "List all the source controls.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of source controls.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of source controls.", + "items": { + "$ref": "#/definitions/SourceControl" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "SourceControl": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a SourceControl in Azure Security Insights.", + "required": [ + "properties" + ], + "properties": { + "properties": { + "description": "source control properties", + "$ref": "#/definitions/SourceControlProperties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "SourceControlProperties": { + "description": "Describes source control properties", + "properties": { + "id": { + "description": "The id (a Guid) of the source control", + "type": "string", + "readOnly": true + }, + "version": { + "$ref": "#/definitions/Version", + "description": "The version number associated with the source control", + "type": "string" + }, + "displayName": { + "description": "The display name of the source control", + "type": "string" + }, + "description": { + "description": "A description of the source control", + "type": "string" + }, + "repoType": { + "$ref": "#/definitions/RepoType", + "description": "The repository type of the source control", + "type": "string" + }, + "contentTypes": { + "description": "Array of source control content types.", + "items": { + "$ref": "#/definitions/ContentType" + }, + "type": "array" + }, + "repository": { + "description": "Repository metadata.", + "$ref": "#/definitions/Repository" + }, + "servicePrincipal": { + "description": "Service principal metadata.", + "$ref": "#/definitions/ServicePrincipal" + }, + "repositoryAccess": { + "description": "Repository access credentials. This is write-only object and it never returns back to a user.", + "x-ms-mutability": [ + "create", + "update" + ], + "$ref": "#/definitions/RepositoryAccess" + }, + "repositoryResourceInfo": { + "description": "Information regarding the resources created in user's repository.", + "$ref": "#/definitions/RepositoryResourceInfo" + }, + "lastDeploymentInfo": { + "description": "Information regarding the latest deployment for the source control.", + "$ref": "#/definitions/DeploymentInfo" + }, + "pullRequest": { + "description": "Information regarding the pull request of the source control.", + "$ref": "#/definitions/PullRequest" + } + }, + "required": [ + "displayName", + "repoType", + "contentTypes", + "repository" + ], + "type": "object" + }, + "RepositoryAccess": { + "type": "object", + "description": "Credentials to access repository.", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "The kind of repository access credentials", + "$ref": "#/definitions/RepositoryAccessKind" + }, + "code": { + "x-ms-secret": true, + "type": "string", + "description": "OAuth Code. Required when `kind` is `OAuth`" + }, + "state": { + "x-ms-secret": true, + "type": "string", + "description": "OAuth State. Required when `kind` is `OAuth`" + }, + "clientId": { + "type": "string", + "description": "OAuth ClientId. Required when `kind` is `OAuth`" + }, + "token": { + "x-ms-secret": true, + "type": "string", + "description": "Personal Access Token. Required when `kind` is `PAT`" + }, + "installationId": { + "type": "string", + "description": "Application installation ID. Required when `kind` is `App`. Supported by `GitHub` only." + } + } + }, + "RepositoryAccessObject": { + "description": "Credentials to access repository.", + "type": "object", + "required": [ + "repositoryAccess" + ], + "properties": { + "repositoryAccess": { + "description": "RepositoryAccess properties", + "$ref": "#/definitions/RepositoryAccess", + "x-ms-client-flatten": true + } + } + }, + "RepositoryAccessProperties": { + "description": "Credentials to access repository.", + "type": "object", + "required": [ + "properties" + ], + "properties": { + "properties": { + "description": "RepositoryAccess properties", + "$ref": "#/definitions/RepositoryAccessObject", + "x-ms-client-flatten": true + } + } + }, + "Repository": { + "type": "object", + "required": [ + "url", + "branch" + ], + "description": "metadata of a repository.", + "properties": { + "url": { + "description": "Url of repository.", + "type": "string" + }, + "branch": { + "description": "Branch name of repository.", + "type": "string" + }, + "displayUrl": { + "description": "Display url of repository.", + "type": "string" + }, + "deploymentLogsUrl": { + "description": "Url to access repository action logs.", + "type": "string", + "readOnly": true + } + } + }, + "ServicePrincipal": { + "type": "object", + "description": "Service principal metadata.", + "properties": { + "id": { + "description": "Id of service principal.", + "type": "string", + "readOnly": true + }, + "tenantId": { + "description": "Tenant id of service principal.", + "type": "string", + "readOnly": true + }, + "appId": { + "description": "App id of service principal.", + "type": "string", + "readOnly": true + }, + "credentialsExpireOn": { + "format": "date-time", + "description": "Expiration time of service principal credentials.", + "type": "string" + } + } + }, + "RepositoryResourceInfo": { + "type": "object", + "description": "Resources created in user's repository for the source-control.", + "properties": { + "webhook": { + "type": "object", + "description": "The webhook object created for the source-control.", + "$ref": "#/definitions/Webhook" + }, + "gitHubResourceInfo": { + "type": "object", + "description": "Resources created in GitHub for this source-control.", + "$ref": "#/definitions/GitHubResourceInfo" + }, + "azureDevOpsResourceInfo": { + "type": "object", + "description": "Resources created in Azure DevOps for this source-control.", + "$ref": "#/definitions/AzureDevOpsResourceInfo" + } + } + }, + "Webhook": { + "description": "Detail about the webhook object.", + "type": "object", + "properties": { + "webhookId": { + "description": "Unique identifier for the webhook.", + "type": "string", + "readOnly": true + }, + "webhookUrl": { + "description": "URL that gets invoked by the webhook.", + "type": "string", + "readOnly": true + }, + "webhookSecretUpdateTime": { + "format": "date-time", + "description": "Time when the webhook secret was updated.", + "type": "string", + "readOnly": true + }, + "rotateWebhookSecret": { + "description": "A flag to instruct the backend service to rotate webhook secret.", + "type": "boolean" + } + } + }, + "GitHubResourceInfo": { + "readOnly": true, + "description": "Resources created in GitHub repository.", + "type": "object", + "properties": { + "appInstallationId": { + "description": "GitHub application installation id.", + "type": "string" + } + } + }, + "AzureDevOpsResourceInfo": { + "readOnly": true, + "description": "Resources created in Azure DevOps repository.", + "type": "object", + "properties": { + "pipelineId": { + "description": "Id of the pipeline created for the source-control.", + "type": "string" + }, + "serviceConnectionId": { + "description": "Id of the service-connection created for the source-control.", + "type": "string" + } + } + }, + "DeploymentInfo": { + "readOnly": true, + "description": "Information regarding a deployment.", + "type": "object", + "properties": { + "deploymentFetchStatus": { + "$ref": "#/definitions/DeploymentFetchStatus", + "description": "Status while fetching the last deployment.", + "type": "string" + }, + "deployment": { + "$ref": "#/definitions/Deployment", + "description": "Deployment information.", + "type": "object" + }, + "message": { + "description": "Additional details about the deployment that can be shown to the user.", + "type": "string" + } + } + }, + "Deployment": { + "description": "Description about a deployment.", + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment identifier.", + "type": "string" + }, + "deploymentState": { + "$ref": "#/definitions/DeploymentState", + "description": "Current status of the deployment.", + "type": "string" + }, + "deploymentResult": { + "$ref": "#/definitions/DeploymentResult", + "description": "The outcome of the deployment.", + "type": "string" + }, + "deploymentTime": { + "format": "date-time", + "description": "The time when the deployment finished.", + "type": "string" + }, + "deploymentLogsUrl": { + "description": "Url to access repository action logs.", + "type": "string" + } + } + }, + "ContentType": { + "description": "The content type of a source control path.", + "enum": [ + "AnalyticRule", + "AutomationRule", + "HuntingQuery", + "Parser", + "Playbook", + "Workbook" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ContentType", + "values": [ + { + "value": "AnalyticRule" + }, + { + "value": "AutomationRule" + }, + { + "value": "HuntingQuery" + }, + { + "value": "Parser" + }, + { + "value": "Playbook" + }, + { + "value": "Workbook" + } + ] + } + }, + "RepoType": { + "description": "The type of repository.", + "enum": [ + "Github", + "AzureDevOps" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "RepoType", + "values": [ + { + "value": "Github" + }, + { + "value": "AzureDevOps" + } + ] + } + }, + "RepositoryAccessKind": { + "description": "The kind of repository access credentials", + "enum": [ + "OAuth", + "PAT", + "App" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "RepositoryAccessKind", + "values": [ + { + "value": "OAuth" + }, + { + "value": "PAT" + }, + { + "value": "App" + } + ] + } + }, + "Version": { + "readOnly": true, + "description": "The version of the source control.", + "enum": [ + "V1", + "V2" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "Version", + "values": [ + { + "value": "V1" + }, + { + "value": "V2" + } + ] + } + }, + "DeploymentFetchStatus": { + "description": "Status while trying to fetch the deployment information.", + "enum": [ + "Success", + "Unauthorized", + "NotFound" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DeploymentFetchStatus", + "values": [ + { + "value": "Success" + }, + { + "value": "Unauthorized" + }, + { + "value": "NotFound" + } + ] + } + }, + "DeploymentState": { + "description": "The current state of the deployment.", + "enum": [ + "In_Progress", + "Completed", + "Queued", + "Canceling" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DeploymentState", + "values": [ + { + "value": "In_Progress" + }, + { + "value": "Completed" + }, + { + "value": "Queued" + }, + { + "value": "Canceling" + } + ] + } + }, + "DeploymentResult": { + "description": "Status while trying to fetch the deployment information.", + "enum": [ + "Success", + "Canceled", + "Failed" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DeploymentResult", + "values": [ + { + "value": "Success" + }, + { + "value": "Canceled" + }, + { + "value": "Failed" + } + ] + } + }, + "PullRequest": { + "readOnly": true, + "description": "Information regarding pull request for protected branches.", + "type": "object", + "properties": { + "url": { + "description": "URL of pull request", + "type": "string", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/PullRequestState", + "description": "State of the pull request", + "type": "object", + "readOnly": true + } + } + }, + "PullRequestState": { + "description": "Status of the pull request.", + "enum": [ + "Open", + "Closed" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "state", + "values": [ + { + "value": "Open" + }, + { + "value": "Closed" + } + ] + } + }, + "Warning": { + "description": "Warning response structure.", + "properties": { + "warning": { + "$ref": "#/definitions/WarningBody", + "description": "Warning data." + } + }, + "type": "object" + }, + "WarningBody": { + "readOnly": true, + "description": "Warning details.", + "properties": { + "code": { + "description": "An identifier for the warning. Codes are invariant and are intended to be consumed programmatically.", + "readOnly": true, + "type": "object", + "$ref": "#/definitions/WarningCode" + }, + "message": { + "description": "A message describing the warning, intended to be suitable for display in a user interface.", + "readOnly": true, + "type": "string" + }, + "details": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/WarningBody" + }, + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "WarningCode": { + "readOnly": true, + "description": "The type of repository.", + "enum": [ + "SourceControlWarning_DeleteServicePrincipal", + "SourceControlWarning_DeletePipelineFromAzureDevOps", + "SourceControlWarning_DeleteWorkflowAndSecretFromGitHub", + "SourceControlWarning_DeleteRoleAssignment", + "SourceControl_DeletedWithWarnings" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "WarningCode", + "values": [ + { + "value": "SourceControlWarning_DeleteServicePrincipal" + }, + { + "value": "SourceControlWarning_DeletePipelineFromAzureDevOps" + }, + { + "value": "SourceControlWarning_DeleteWorkflowAndSecretFromGitHub" + }, + { + "value": "SourceControlWarning_DeleteRoleAssignment" + }, + { + "value": "SourceControl_DeletedWithWarnings" + } + ] + } + } + }, + "parameters": { + "RepoTypeParameter": { + "description": "The repo type.", + "in": "body", + "name": "repoType", + "required": true, + "schema": { + "$ref": "#/definitions/RepoType" + }, + "x-ms-parameter-location": "method" + }, + "SourceControlIdParameter": { + "description": "Source control Id", + "in": "path", + "name": "sourceControlId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SourceControl": { + "description": "The SourceControl", + "in": "body", + "name": "sourceControl", + "required": true, + "schema": { + "$ref": "#/definitions/SourceControl" + }, + "x-ms-parameter-location": "method" + }, + "RepositoryAccess": { + "description": "The repository access credentials.", + "in": "body", + "name": "repositoryAccess", + "required": true, + "schema": { + "required": [ + "repositoryAccess" + ], + "$ref": "#/definitions/RepositoryAccessProperties" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligence.json new file mode 100644 index 000000000000..8b43aca5186c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligence.json @@ -0,0 +1,1097 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/createIndicator": { + "post": { + "x-ms-examples": { + "Create a new Threat Intelligence": { + "$ref": "./examples/threatintelligence/CreateThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Create a new threat intelligence indicator.", + "operationId": "ThreatIntelligenceIndicator_CreateIndicator", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceProperties" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed to create indicators.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/indicators": { + "get": { + "x-ms-examples": { + "Get all threat intelligence indicators": { + "$ref": "./examples/threatintelligence/GetThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Get all threat intelligence indicators.", + "operationId": "ThreatIntelligenceIndicators_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataFilter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformationList" + } + }, + "default": { + "description": "Error response describing why the operation failed to get indicators.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/indicators/{name}": { + "get": { + "x-ms-examples": { + "View a threat intelligence indicator by name": { + "$ref": "./examples/threatintelligence/GetThreatIntelligenceById.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "View a threat intelligence indicator by name.", + "operationId": "ThreatIntelligenceIndicator_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed to view an indicator.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Update a threat Intelligence indicator": { + "$ref": "./examples/threatintelligence/UpdateThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Update a threat Intelligence indicator.", + "operationId": "ThreatIntelligenceIndicator_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceProperties" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed to update an indicator.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a threat intelligence indicator": { + "$ref": "./examples/threatintelligence/DeleteThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Delete a threat intelligence indicator.", + "operationId": "ThreatIntelligenceIndicator_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed to delete an indicator.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/queryIndicators": { + "post": { + "x-ms-examples": { + "Query threat intelligence indicators as per filtering criteria": { + "$ref": "./examples/threatintelligence/QueryThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Query threat intelligence indicators as per filtering criteria.", + "operationId": "ThreatIntelligenceIndicator_QueryIndicators", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceFilteringCriteria" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/metrics": { + "get": { + "x-ms-examples": { + "Get threat intelligence indicators metrics.": { + "$ref": "./examples/threatintelligence/CollectThreatIntelligenceMetrics.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Get threat intelligence indicators metrics (Indicators counts by Type, Threat Type, Source).", + "operationId": "ThreatIntelligenceIndicatorMetrics_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceMetricsList" + } + }, + "default": { + "description": "Error response describing why the operation failed to get metrics.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/indicators/{name}/appendTags": { + "post": { + "x-ms-examples": { + "Append tags to a threat intelligence indicator": { + "$ref": "./examples/threatintelligence/AppendTagsThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Append tags to a threat intelligence indicator.", + "operationId": "ThreatIntelligenceIndicator_AppendTags", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceAppendTags" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "default": { + "description": "Error response describing why the operation failed to append tags.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/main/indicators/{name}/replaceTags": { + "post": { + "x-ms-examples": { + "Replace tags to a Threat Intelligence": { + "$ref": "./examples/threatintelligence/ReplaceTagsThreatIntelligence.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Replace tags added to a threat intelligence indicator.", + "operationId": "ThreatIntelligenceIndicator_ReplaceTags", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceName" + }, + { + "$ref": "#/parameters/ThreatIntelligenceReplaceTags" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed to replace tags.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "parameters": { + "ThreatIntelligenceName": { + "description": "Threat intelligence indicator name field.", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ThreatIntelligenceProperties": { + "description": "Properties of threat intelligence indicators to create and update.", + "in": "body", + "name": "ThreatIntelligenceProperties", + "required": true, + "schema": { + "$ref": "#/definitions/ThreatIntelligenceIndicatorModel" + }, + "x-ms-parameter-location": "method" + }, + "ThreatIntelligenceReplaceTags": { + "description": "Tags in the threat intelligence indicator to be replaced.", + "in": "body", + "name": "ThreatIntelligenceReplaceTags", + "required": true, + "schema": { + "$ref": "#/definitions/ThreatIntelligenceIndicatorModel" + }, + "x-ms-parameter-location": "method" + }, + "ThreatIntelligenceFilteringCriteria": { + "description": "Filtering criteria for querying threat intelligence indicators.", + "in": "body", + "name": "ThreatIntelligenceFilteringCriteria", + "required": true, + "schema": { + "$ref": "#/definitions/ThreatIntelligenceFilteringCriteria" + }, + "x-ms-parameter-location": "method" + }, + "ThreatIntelligenceIndicatorEntityKind": { + "description": "The threat intelligence entity kind", + "in": "query", + "name": "ctiEntityKind", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ThreatIntelligenceAppendTags": { + "description": "The threat intelligence append tags request body", + "in": "body", + "name": "ThreatIntelligenceAppendTags", + "required": true, + "schema": { + "$ref": "#/definitions/ThreatIntelligenceAppendTags" + }, + "x-ms-parameter-location": "method" + } + }, + "definitions": { + "ThreatIntelligenceInformationList": { + "description": "List of all the threat intelligence information objects.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of information objects.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of threat intelligence information objects.", + "items": { + "$ref": "#/definitions/ThreatIntelligenceInformation" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "ThreatIntelligenceInformation": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Threat intelligence information object.", + "properties": { + "kind": { + "$ref": "#/definitions/ThreatIntelligenceResourceInnerKind", + "description": "The kind of the entity." + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "ThreatIntelligenceIndicatorModel": { + "allOf": [ + { + "$ref": "#/definitions/ThreatIntelligenceInformation" + } + ], + "description": "Threat intelligence indicator entity.", + "properties": { + "properties": { + "$ref": "#/definitions/ThreatIntelligenceIndicatorProperties", + "description": "Threat Intelligence Entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "indicator" + }, + "ThreatIntelligenceResourceInnerKind": { + "description": "The kind of the threat intelligence entity", + "enum": [ + "indicator" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ThreatIntelligenceResourceInnerKind", + "values": [ + { + "description": "Entity represents threat intelligence indicator in the system.", + "value": "indicator" + } + ] + } + }, + "ThreatIntelligenceIndicatorProperties": { + "allOf": [ + { + "$ref": "./common/EntityTypes.json#/definitions/EntityCommonProperties" + } + ], + "description": "Describes threat intelligence entity properties", + "properties": { + "threatIntelligenceTags": { + "description": "List of tags", + "items": { + "description": "tag", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "lastUpdatedTimeUtc": { + "description": "Last updated time in UTC", + "type": "string" + }, + "source": { + "description": "Source of a threat intelligence entity", + "type": "string" + }, + "displayName": { + "description": "Display name of a threat intelligence entity", + "type": "string" + }, + "description": { + "description": "Description of a threat intelligence entity", + "type": "string" + }, + "indicatorTypes": { + "description": "Indicator types of threat intelligence entities", + "items": { + "description": "Indicator type of a threat intelligence entity", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "pattern": { + "description": "Pattern of a threat intelligence entity", + "type": "string" + }, + "patternType": { + "description": "Pattern type of a threat intelligence entity", + "type": "string" + }, + "patternVersion": { + "description": "Pattern version of a threat intelligence entity", + "type": "string" + }, + "killChainPhases": { + "description": "Kill chain phases", + "items": { + "description": "Kill chain phase", + "$ref": "#/definitions/ThreatIntelligenceKillChainPhase" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "parsedPattern": { + "description": "Parsed patterns", + "items": { + "description": "Parsed pattern", + "$ref": "#/definitions/ThreatIntelligenceParsedPattern" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "externalId": { + "description": "External ID of threat intelligence entity", + "type": "string" + }, + "createdByRef": { + "description": "Created by reference of threat intelligence entity", + "type": "string" + }, + "defanged": { + "description": "Is threat intelligence entity defanged", + "type": "boolean" + }, + "externalLastUpdatedTimeUtc": { + "description": "External last updated time in UTC", + "type": "string" + }, + "externalReferences": { + "description": "External References", + "items": { + "description": "external_reference", + "$ref": "#/definitions/ThreatIntelligenceExternalReference" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "granularMarkings": { + "description": "Granular Markings", + "items": { + "description": "Granular marking", + "$ref": "#/definitions/ThreatIntelligenceGranularMarkingModel" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "labels": { + "description": "Labels of threat intelligence entity", + "items": { + "description": "label", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "revoked": { + "description": "Is threat intelligence entity revoked", + "type": "boolean" + }, + "confidence": { + "description": "Confidence of threat intelligence entity", + "type": "integer", + "format": "int32" + }, + "objectMarkingRefs": { + "description": "Threat intelligence entity object marking references", + "items": { + "description": "Threat intelligence entity object marking reference", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "language": { + "description": "Language of threat intelligence entity", + "type": "string" + }, + "threatTypes": { + "description": "Threat types", + "items": { + "description": "Threat type", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "validFrom": { + "description": "Valid from", + "type": "string" + }, + "validUntil": { + "description": "Valid until", + "type": "string" + }, + "created": { + "description": "Created by", + "type": "string" + }, + "modified": { + "description": "Modified by", + "type": "string" + }, + "extensions": { + "description": "Extensions map", + "type": "object", + "additionalProperties": {} + } + }, + "type": "object" + }, + "ThreatIntelligenceKillChainPhase": { + "description": "Describes threat kill chain phase entity", + "properties": { + "killChainName": { + "description": "Kill chainName name", + "type": "string" + }, + "phaseName": { + "description": "Phase name", + "type": "string" + } + }, + "type": "object" + }, + "ThreatIntelligenceParsedPattern": { + "description": "Describes parsed pattern entity", + "properties": { + "patternTypeKey": { + "description": "Pattern type key", + "type": "string" + }, + "patternTypeValues": { + "description": "Pattern type keys", + "items": { + "description": "Pattern type key", + "$ref": "#/definitions/ThreatIntelligenceParsedPatternTypeValue" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "ThreatIntelligenceParsedPatternTypeValue": { + "description": "Describes threat kill chain phase entity", + "properties": { + "valueType": { + "description": "Type of the value", + "type": "string" + }, + "value": { + "description": "Value of parsed pattern", + "type": "string" + } + }, + "type": "object" + }, + "ThreatIntelligenceGranularMarkingModel": { + "description": "Describes threat granular marking model entity", + "properties": { + "language": { + "description": "Language granular marking model", + "type": "string" + }, + "markingRef": { + "description": "marking reference granular marking model", + "type": "integer", + "format": "int32" + }, + "selectors": { + "description": "granular marking model selectors", + "items": { + "description": "granular marking model selector", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "ThreatIntelligenceExternalReference": { + "description": "Describes external reference", + "properties": { + "description": { + "description": "External reference description", + "type": "string" + }, + "externalId": { + "description": "External reference ID", + "type": "string" + }, + "sourceName": { + "description": "External reference source name", + "type": "string" + }, + "url": { + "description": "External reference URL", + "type": "string" + }, + "hashes": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "External reference hashes" + } + }, + "type": "object" + }, + "ThreatIntelligenceFilteringCriteria": { + "description": "Filtering criteria for querying threat intelligence indicators.", + "properties": { + "pageSize": { + "description": "Page size", + "type": "integer", + "format": "int32" + }, + "minConfidence": { + "description": "Minimum confidence.", + "type": "integer", + "format": "int32" + }, + "maxConfidence": { + "description": "Maximum confidence.", + "type": "integer", + "format": "int32" + }, + "minValidUntil": { + "description": "Start time for ValidUntil filter.", + "type": "string" + }, + "maxValidUntil": { + "description": "End time for ValidUntil filter.", + "type": "string" + }, + "includeDisabled": { + "description": "Parameter to include/exclude disabled indicators.", + "type": "boolean" + }, + "sortBy": { + "description": "Columns to sort by and sorting order", + "items": { + "description": "Sort By", + "$ref": "#/definitions/ThreatIntelligenceSortingCriteria" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "sources": { + "description": "Sources of threat intelligence indicators", + "items": { + "description": "Source", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "patternTypes": { + "description": "Pattern types", + "items": { + "description": "Pattern type", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "threatTypes": { + "description": "Threat types of threat intelligence indicators", + "items": { + "description": "Threat type of a threat intelligence indicator", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "ids": { + "description": "Ids of threat intelligence indicators", + "items": { + "description": "Id of a threat intelligence indicator", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "keywords": { + "description": "Keywords for searching threat intelligence indicators", + "items": { + "description": "keyword for searching threat intelligence indicators", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "skipToken": { + "description": "Skip token.", + "type": "string" + } + }, + "type": "object" + }, + "ThreatIntelligenceSortingCriteria": { + "description": "List of available columns for sorting", + "properties": { + "itemKey": { + "description": "Column name", + "type": "string" + }, + "sortOrder": { + "$ref": "#/definitions/ThreatIntelligenceSortingOrder", + "description": "Sorting order (ascending/descending/unsorted)." + } + }, + "type": "object" + }, + "ThreatIntelligenceSortingOrder": { + "description": "Sorting order (ascending/descending/unsorted).", + "enum": [ + "unsorted", + "ascending", + "descending" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ThreatIntelligenceSortingOrder", + "values": [ + { + "value": "unsorted" + }, + { + "value": "ascending" + }, + { + "value": "descending" + } + ] + } + }, + "ThreatIntelligenceAppendTags": { + "description": "Array of tags to be appended to the threat intelligence indicator.", + "properties": { + "threatIntelligenceTags": { + "description": "List of tags to be appended.", + "items": { + "description": "parameter", + "type": "string" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "ThreatIntelligenceMetricsList": { + "description": "List of all the threat intelligence metric fields (type/threat type/source).", + "properties": { + "value": { + "description": "Array of threat intelligence metric fields (type/threat type/source).", + "items": { + "$ref": "#/definitions/ThreatIntelligenceMetrics" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "ThreatIntelligenceMetrics": { + "description": "Threat intelligence metrics.", + "properties": { + "properties": { + "description": "Threat intelligence metrics.", + "$ref": "#/definitions/ThreatIntelligenceMetric" + } + }, + "type": "object" + }, + "ThreatIntelligenceMetric": { + "description": "Describes threat intelligence metric", + "properties": { + "lastUpdatedTimeUtc": { + "description": "Last updated indicator metric", + "type": "string" + }, + "threatTypeMetrics": { + "description": "Threat type metrics", + "items": { + "description": "parameter", + "$ref": "#/definitions/ThreatIntelligenceMetricEntity" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "patternTypeMetrics": { + "description": "Pattern type metrics", + "items": { + "description": "parameter", + "$ref": "#/definitions/ThreatIntelligenceMetricEntity" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "sourceMetrics": { + "description": "Source metrics", + "items": { + "description": "parameter", + "$ref": "#/definitions/ThreatIntelligenceMetricEntity" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "ThreatIntelligenceMetricEntity": { + "description": "Describes threat intelligence metric entity", + "properties": { + "metricName": { + "description": "Metric name", + "type": "string" + }, + "metricValue": { + "description": "Metric value", + "type": "integer", + "format": "int32" + } + }, + "type": "object" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceCount.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceCount.json new file mode 100644 index 000000000000..332246fd4ef8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceCount.json @@ -0,0 +1,348 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/{tiType}/count": { + "post": { + "x-ms-examples": { + "Get TI object count": { + "$ref": "./examples/threatintelligence/PostThreatIntelligenceCount.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Gets the count of all TI objects for the workspace.", + "operationId": "ThreatIntelligence_Count", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/TiType" + }, + { + "$ref": "#/parameters/CountQuery" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceCount" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "ThreatIntelligenceCount": { + "description": "Count of all the threat intelligence objects on the workspace that match the provided query.", + "properties": { + "count": { + "description": "Count of all the threat intelligence objects on the workspace that match the provided query.", + "readOnly": true, + "format": "int32", + "type": "integer" + } + }, + "type": "object", + "required": [ + "count" + ] + }, + "CountQuery": { + "description": "Represents a query to run on the TI objects in the workspace.", + "properties": { + "properties": { + "$ref": "#/definitions/QueryProperties", + "description": "Query properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "QueryProperties": { + "description": "Describes the query properties", + "properties": { + "condition": { + "$ref": "#/definitions/ConditionProperties", + "description": "Represents a condition used to query for TI objects.", + "type": "string" + } + }, + "type": "object" + }, + "ConditionProperties": { + "description": "Represents a condition used to query for TI objects.", + "properties": { + "stixObjectType": { + "description": "The STIX type for the objects returned by this query.", + "readOnly": true, + "type": "string" + }, + "clauses": { + "description": "The list of clauses to be evaluated in disjunction or conjunction base on the specified top level connective operator.", + "items": { + "$ref": "#/definitions/ConditionClause" + }, + "type": "array" + }, + "conditionConnective": { + "description": "The top level connective operator for this condition.", + "type": "string", + "$ref": "#/definitions/Connective" + } + }, + "required": [ + "clauses" + ], + "type": "object" + }, + "ConditionClause": { + "description": "Represents a single clause to be evaluated by a NormalizedCondition.", + "properties": { + "clauseConnective": { + "description": "The connective used to join all values in this ConditionClause", + "type": "string", + "$ref": "#/definitions/Connective" + }, + "field": { + "description": "The name of the field that is evaluated.", + "type": "string" + }, + "operator": { + "description": "Represents an operator in a ConditionClause.", + "type": "string", + "enum": [ + "Equals", + "NotEquals", + "LessThan", + "LessThanEqual", + "GreaterThan", + "GreaterThanEqual", + "StringContains", + "StringNotContains", + "StringStartsWith", + "StringNotStartsWith", + "StringEndsWith", + "StringNotEndsWith", + "StringIsEmpty", + "IsNull", + "IsTrue", + "IsFalse", + "ArrayContains", + "ArrayNotContains", + "OnOrAfterRelative", + "AfterRelative", + "OnOrBeforeRelative", + "BeforeRelative", + "OnOrAfterAbsolute", + "AfterAbsolute", + "OnOrBeforeAbsolute", + "BeforeAbsolute" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "Operator", + "values": [ + { + "value": "Equals" + }, + { + "value": "NotEquals" + }, + { + "value": "LessThan" + }, + { + "value": "LessThanEqual" + }, + { + "value": "GreaterThan" + }, + { + "value": "GreaterThanEqual" + }, + { + "value": "StringContains" + }, + { + "value": "StringNotContains" + }, + { + "value": "StringStartsWith" + }, + { + "value": "StringNotStartsWith" + }, + { + "value": "StringEndsWith" + }, + { + "value": "StringNotEndsWith" + }, + { + "value": "StringIsEmpty" + }, + { + "value": "IsNull" + }, + { + "value": "IsTrue" + }, + { + "value": "IsFalse" + }, + { + "value": "ArrayContains" + }, + { + "value": "ArrayNotContains" + }, + { + "value": "OnOrAfterRelative" + }, + { + "value": "AfterRelative" + }, + { + "value": "OnOrBeforeRelative" + }, + { + "value": "BeforeRelative" + }, + { + "value": "OnOrAfterAbsolute" + }, + { + "value": "AfterAbsolute" + }, + { + "value": "OnOrBeforeAbsolute" + }, + { + "value": "BeforeAbsolute" + } + ] + } + }, + "values": { + "description": "The top level connective operator for this condition.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "field", + "operator", + "values" + ], + "type": "object" + }, + "Connective": { + "description": "Represents boolean connectives used to join clauses in conditions.", + "readOnly": true, + "enum": [ + "And", + "Or" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "Connective", + "values": [ + { + "description": "'And' connective", + "value": "And" + }, + { + "description": "'Or' connective", + "value": "Or" + } + ] + } + } + }, + "parameters": { + "CountQuery": { + "description": "The query to run on the TI objects in the workspace.", + "in": "body", + "name": "query", + "schema": { + "$ref": "#/definitions/CountQuery" + }, + "x-ms-parameter-location": "method" + }, + "TiType": { + "description": "TI type", + "in": "path", + "name": "tiType", + "required": true, + "enum": [ + "main" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "TiType", + "values": [ + { + "value": "main" + } + ] + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceQuery.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceQuery.json new file mode 100644 index 000000000000..6b915530f686 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceQuery.json @@ -0,0 +1,583 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/threatIntelligence/{tiType}/query": { + "post": { + "x-ms-examples": { + "Get TI objects": { + "$ref": "./examples/threatintelligence/PostThreatIntelligenceQuery.json" + } + }, + "tags": [ + "ThreatIntelligence" + ], + "description": "Gets all TI objects for the workspace.", + "operationId": "ThreatIntelligence_Query", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/TiType" + }, + { + "$ref": "#/parameters/Query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ThreatIntelligenceList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "TIObject": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "description": "Represents a threat intelligence object in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/TIObjectCommonProperties", + "description": "The properties of the TI object", + "type": "object", + "x-ms-client-flatten": true + }, + "kind": { + "description": "The kind of the TI object", + "enum": [ + "AttackPattern", + "Identity", + "Indicator", + "Relationship", + "ThreatActor" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "TIObjectKind", + "values": [ + { + "description": "A TI object that represents an attack pattern.", + "value": "AttackPattern" + }, + { + "description": "A TI object that represents an identity.", + "value": "Identity" + }, + { + "description": "A TI object that represents an indicator.", + "value": "Indicator" + }, + { + "description": "A TI object that represents a relationship between two TI objects.", + "value": "Relationship" + }, + { + "description": "A TI object that represents a threat actor.", + "value": "ThreatActor" + } + ] + } + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "ThreatIntelligenceList": { + "description": "List all the threat intelligence objects on the workspace that match the provided query.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of threat intelligence objects.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of threat intelligence objects on the workspace that match the provided query.", + "items": { + "$ref": "#/definitions/TIObject" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "TIObjectCommonProperties": { + "description": "Describes properties common to all threat intelligence objects", + "properties": { + "data": { + "description": "The core STIX object that this TI object represents.", + "readOnly": true, + "type": "object", + "additionalProperties": {} + }, + "createdBy": { + "description": "The UserInfo of the user/entity which originally created this TI object.", + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "readOnly": true, + "type": "object" + }, + "source": { + "description": "The source name for this TI object.", + "readOnly": true, + "type": "string" + }, + "firstIngestedTimeUtc": { + "description": "The timestamp for the first time this object was ingested.", + "readOnly": true, + "format": "date-time", + "type": "string" + }, + "lastIngestedTimeUtc": { + "description": "The timestamp for the last time this object was ingested.", + "readOnly": true, + "format": "date-time", + "type": "string" + }, + "ingestionRulesVersion": { + "description": "The ID of the rules version that was active when this TI object was last ingested.", + "readOnly": true, + "format": "uuid", + "type": "string" + }, + "lastUpdateMethod": { + "description": "The name of the method/application that initiated the last write to this TI object.", + "readOnly": true, + "type": "string" + }, + "lastModifiedBy": { + "description": "The UserInfo of the user/entity which last modified this TI object.", + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "readOnly": true, + "type": "object" + }, + "lastUpdatedDateTimeUtc": { + "description": "The timestamp for the last time this TI object was updated.", + "readOnly": true, + "format": "date-time", + "type": "string" + }, + "relationshipHints": { + "description": "A dictionary used to help follow relationships from this object to other STIX objects. The keys are field names from the STIX object (in the 'data' field), and the values are lists of sources that can be prepended to the object ID in order to efficiently locate the target TI object.", + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/RelationshipHint" + } + } + }, + "type": "object" + }, + "RelationshipHint": { + "description": "An object used to help follow relationships from this object to other STIX objects.", + "properties": { + "fieldName": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "type": "object" + }, + "Query": { + "description": "Represents a query to run on the TI objects in the workspace.", + "properties": { + "condition": { + "description": "Represents a condition used to query for TI objects.", + "properties": { + "stixObjectType": { + "description": "The STIX type for the objects returned by this query.", + "type": "string" + }, + "clauses": { + "description": "The list of clauses to be evaluated in disjunction or conjunction base on the specified top level connective operator.", + "items": { + "$ref": "#/definitions/ConditionClause" + }, + "type": "array" + }, + "conditionConnective": { + "description": "The top level connective operator for this condition.", + "type": "string", + "$ref": "#/definitions/Connective" + } + }, + "required": [ + "clauses" + ], + "type": "object" + }, + "sortBy": { + "description": "Specifies how to sort the query results.", + "properties": { + "direction": { + "description": "The direction to sort the results by.", + "enum": [ + "ASC", + "DESC" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "SortingDirection", + "values": [ + { + "description": "Indicates that the query should be sorted from lowest-to-highest value.", + "value": "ASC" + }, + { + "description": "Indicates that the query should be sorted from lowest-to-highest value.", + "value": "DESC" + } + ] + } + }, + "field": { + "description": "Represents the field to sort the results by.", + "type": "string" + } + }, + "type": "object" + }, + "maxPageSize": { + "description": "Represents the maximum size of the page that will be returned from the query API.", + "format": "int32", + "type": "integer" + }, + "minPageSize": { + "description": "Represents the minimum size of the page that will be returned from the query API.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Connective": { + "description": "Represents boolean connectives used to join clauses in conditions.", + "enum": [ + "And", + "Or" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "Connective", + "values": [ + { + "description": "'And' connective", + "value": "And" + }, + { + "description": "'Or' connective", + "value": "Or" + } + ] + } + }, + "ConditionClause": { + "description": "Represents a single clause to be evaluated by a NormalizedCondition.", + "properties": { + "clauseConnective": { + "description": "The connective used to join all values in this ConditionClause", + "type": "string", + "$ref": "#/definitions/Connective" + }, + "field": { + "description": "The name of the field that is evaluated.", + "type": "string" + }, + "operator": { + "description": "Represents an operator in a ConditionClause.", + "type": "string", + "enum": [ + "Equals", + "NotEquals", + "LessThan", + "LessThanEqual", + "GreaterThan", + "GreaterThanEqual", + "StringContains", + "StringNotContains", + "StringStartsWith", + "StringNotStartsWith", + "StringEndsWith", + "StringNotEndsWith", + "StringIsEmpty", + "IsNull", + "IsTrue", + "IsFalse", + "ArrayContains", + "ArrayNotContains", + "OnOrAfterRelative", + "AfterRelative", + "OnOrBeforeRelative", + "BeforeRelative", + "OnOrAfterAbsolute", + "AfterAbsolute", + "OnOrBeforeAbsolute", + "BeforeAbsolute" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "Operator", + "values": [ + { + "value": "Equals" + }, + { + "value": "NotEquals" + }, + { + "value": "LessThan" + }, + { + "value": "LessThanEqual" + }, + { + "value": "GreaterThan" + }, + { + "value": "GreaterThanEqual" + }, + { + "value": "StringContains" + }, + { + "value": "StringNotContains" + }, + { + "value": "StringStartsWith" + }, + { + "value": "StringNotStartsWith" + }, + { + "value": "StringEndsWith" + }, + { + "value": "StringNotEndsWith" + }, + { + "value": "StringIsEmpty" + }, + { + "value": "IsNull" + }, + { + "value": "IsTrue" + }, + { + "value": "IsFalse" + }, + { + "value": "ArrayContains" + }, + { + "value": "ArrayNotContains" + }, + { + "value": "OnOrAfterRelative" + }, + { + "value": "AfterRelative" + }, + { + "value": "OnOrBeforeRelative" + }, + { + "value": "BeforeRelative" + }, + { + "value": "OnOrAfterAbsolute" + }, + { + "value": "AfterAbsolute" + }, + { + "value": "OnOrBeforeAbsolute" + }, + { + "value": "BeforeAbsolute" + } + ] + } + }, + "values": { + "description": "The top level connective operator for this condition.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "field", + "operator", + "values" + ], + "type": "object" + }, + "ThreatActor": { + "allOf": [ + { + "$ref": "#/definitions/TIObject" + } + ], + "description": "Represents a threat actor in Azure Security Insights.", + "type": "object" + }, + "AttackPattern": { + "allOf": [ + { + "$ref": "#/definitions/TIObject" + } + ], + "description": "Represents an attack pattern in Azure Security Insights.", + "type": "object" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/TIObject" + } + ], + "description": "Represents an identity in Azure Security Insights.", + "type": "object" + }, + "Relationship": { + "allOf": [ + { + "$ref": "#/definitions/TIObject" + } + ], + "description": "Represents a relationship in Azure Security Insights.", + "type": "object" + }, + "Indicator": { + "allOf": [ + { + "$ref": "#/definitions/TIObject" + } + ], + "description": "Represents an indicator in Azure Security Insights.", + "properties": { + "observables": { + "description": "The observables of this indicator", + "items": { + "description": "An observable of this indicator", + "properties": { + "type": { + "description": "The type of the observable of this indicator", + "type": "string" + }, + "value": { + "description": "The value of the observable of this indicator", + "type": "string" + } + }, + "type": "object", + "readOnly": true + }, + "type": "array" + } + }, + "type": "object" + } + }, + "parameters": { + "Query": { + "description": "The query to run on the TI objects in the workspace.", + "in": "body", + "name": "query", + "schema": { + "$ref": "#/definitions/Query" + }, + "x-ms-parameter-location": "method" + }, + "TiType": { + "description": "TI type", + "in": "path", + "name": "tiType", + "required": true, + "enum": [ + "main" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "TiType", + "values": [ + { + "value": "main" + } + ] + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/TriggeredAnalyticsRuleRuns.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/TriggeredAnalyticsRuleRuns.json new file mode 100644 index 000000000000..0bfb52c2d55e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/TriggeredAnalyticsRuleRuns.json @@ -0,0 +1,354 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/{ruleRunId}": { + "get": { + "tags": [ + "triggered analytics rule run" + ], + "description": "Gets the triggered analytics rule run.", + "operationId": "triggeredAnalyticsRuleRun_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "description": "the triggered rule id", + "in": "path", + "name": "ruleRunId", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TriggeredAnalyticsRuleRun" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "triggeredAnalyticsRuleRun_Get": { + "$ref": "./examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRun_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns": { + "get": { + "tags": [ + "triggered analytics rule runs" + ], + "description": "Gets the triggered analytics rule runs.", + "operationId": "getTriggeredAnalyticsRuleRuns_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TriggeredAnalyticsRuleRuns" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "triggeredAnalyticsRuleRuns_Get": { + "$ref": "./examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRuns_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}/triggerRuleRun": { + "post": { + "tags": [ + "trigger analytics rule run" + ], + "description": "triggers analytics rule run", + "operationId": "alertRule_TriggerRuleRun", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/RuleId" + }, + { + "$ref": "#/parameters/AnalyticsRuleRunTriggerParameter" + } + ], + "responses": { + "202": { + "description": "The analytics rule run was successfully triggered.", + "headers": { + "Location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "triggerRuleRun_Post": { + "$ref": "./examples/triggeredAnalyticsRuleRuns/triggerRuleRun_Post.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + } + }, + "definitions": { + "ProvisioningState": { + "enum": [ + "Accepted", + "InProgress", + "Succeeded", + "Failed", + "Canceled" + ], + "description": "The triggered analytics rule run provisioning state", + "type": "string", + "readOnly": true, + "example": "Accepted", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "value": "Accepted" + }, + { + "value": "InProgress" + }, + { + "value": "Succeeded" + }, + { + "value": "Failed" + }, + { + "value": "Canceled" + } + ] + } + }, + "TriggeredAnalyticsRuleRun": { + "required": [ + "properties" + ], + "description": "The triggered analytics rule run", + "type": "object", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/TriggeredAnalyticsRuleRunProperties", + "x-ms-client-flatten": true + } + } + }, + "TriggeredAnalyticsRuleRunProperties": { + "required": [ + "executionTimeUtc", + "provisioningState", + "ruleId", + "triggeredAnalyticsRuleRunId" + ], + "description": "The triggered analytics rule run Properties", + "type": "object", + "properties": { + "executionTimeUtc": { + "format": "date-time", + "type": "string" + }, + "ruleId": { + "type": "string" + }, + "triggeredAnalyticsRuleRunId": { + "type": "string" + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + }, + "ruleRunAdditionalData": { + "type": "object", + "additionalProperties": {} + } + } + }, + "TriggeredAnalyticsRuleRuns": { + "required": [ + "value" + ], + "description": "The triggered analytics rule run array", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/TriggeredAnalyticsRuleRun" + } + }, + "nextLink": { + "type": "string", + "readOnly": true + } + } + }, + "AnalyticsRuleRunTriggerProperties": { + "required": [ + "executionTimeUtc" + ], + "description": "The Analytics Rule Run Trigger properties", + "type": "object", + "properties": { + "executionTimeUtc": { + "format": "date-time", + "type": "string" + } + } + }, + "AnalyticsRuleRunTrigger": { + "required": [ + "properties" + ], + "description": "Analytics Rule Run Trigger request", + "properties": { + "properties": { + "$ref": "#/definitions/AnalyticsRuleRunTriggerProperties", + "description": "The analytics Rule Run Trigger request", + "x-ms-client-flatten": true + } + }, + "type": "object" + } + }, + "parameters": { + "RuleId": { + "description": "Alert rule ID", + "in": "path", + "name": "ruleId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "AnalyticsRuleRunTriggerParameter": { + "description": "The Analytics Rule Run Trigger parameter", + "in": "body", + "name": "analyticsRuleRunTriggerParameter", + "required": true, + "schema": { + "$ref": "#/definitions/AnalyticsRuleRunTrigger" + }, + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [ + { + "name": "AnalyticsOnDemandArm", + "description": "Controller that handles requests for triggeredAnalyticsRuleRuns ARM API." + }, + { + "name": "AnalyticsOnDemandArm", + "description": "Triggered Analytics Rule Runs" + } + ], + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Watchlists.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Watchlists.json new file mode 100644 index 000000000000..66577cc77b3c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/Watchlists.json @@ -0,0 +1,745 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists": { + "get": { + "x-ms-examples": { + "Get all watchlists.": { + "$ref": "./examples/watchlists/GetWatchlists.json" + } + }, + "tags": [ + "Watchlists" + ], + "description": "Gets all watchlists, without watchlist items.", + "operationId": "Watchlists_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WatchlistList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists/{watchlistAlias}": { + "get": { + "x-ms-examples": { + "Get a watchlist.": { + "$ref": "./examples/watchlists/GetWatchlistByAlias.json" + } + }, + "tags": [ + "Watchlists" + ], + "description": "Gets a watchlist, without its watchlist items.", + "operationId": "Watchlists_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Watchlist" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a watchlist.": { + "$ref": "./examples/watchlists/DeleteWatchlist.json" + } + }, + "tags": [ + "Watchlists" + ], + "description": "Delete a watchlist.", + "operationId": "Watchlists_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + } + ], + "responses": { + "202": { + "description": "OK", + "headers": { + "Azure-AsyncOperation": { + "description": "Contains the status URL on which clients are expected to poll the status of the delete operation.", + "type": "string" + }, + "Location": { + "type": "string" + } + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "put": { + "x-ms-examples": { + "Creates or updates a watchlist.": { + "$ref": "./examples/watchlists/CreateWatchlist.json" + }, + "Creates or updates a watchlist and bulk creates watchlist items.": { + "$ref": "./examples/watchlists/CreateWatchlistAndWatchlistItems.json" + } + }, + "tags": [ + "Watchlists" + ], + "description": "Create or update a Watchlist and its Watchlist Items (bulk creation, e.g. through text/csv content type). To create a Watchlist and its Items, we should call this endpoint with either rawContent or a valid SAR URI and contentType properties. The rawContent is mainly used for small watchlist (content size below 3.8 MB). The SAS URI enables the creation of large watchlist, where the content size can go up to 500 MB. The status of processing such large file can be polled through the URL returned in Azure-AsyncOperation header.", + "operationId": "Watchlists_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + }, + { + "$ref": "#/parameters/Watchlist" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Watchlist" + } + }, + "201": { + "description": "Created. The response includes the Provisioning State and the Azure-AsyncOperation header. To get the progress of the operation, call GET operation on the URL in Azure-AsyncOperation header field.", + "schema": { + "$ref": "#/definitions/Watchlist" + }, + "headers": { + "Azure-AsyncOperation": { + "description": "Contains the status URL on which clients are expected to poll the status of the operation.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists/{watchlistAlias}/watchlistItems": { + "get": { + "x-ms-examples": { + "Get all watchlist Items.": { + "$ref": "./examples/watchlists/GetWatchlistItems.json" + } + }, + "tags": [ + "WatchlistItems" + ], + "description": "Gets all watchlist Items.", + "operationId": "WatchlistItems_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WatchlistItemList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists/{watchlistAlias}/watchlistItems/{watchlistItemId}": { + "get": { + "x-ms-examples": { + "Get a watchlist item.": { + "$ref": "./examples/watchlists/GetWatchlistItemById.json" + } + }, + "tags": [ + "WatchlistItems" + ], + "description": "Gets a watchlist, without its watchlist items.", + "operationId": "WatchlistItems_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + }, + { + "$ref": "#/parameters/WatchlistItemId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WatchlistItem" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a watchlist Item.": { + "$ref": "./examples/watchlists/DeleteWatchlistItem.json" + } + }, + "tags": [ + "WatchlistItems" + ], + "description": "Delete a watchlist item.", + "operationId": "WatchlistItems_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + }, + { + "$ref": "#/parameters/WatchlistItemId" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a watchlist item.": { + "$ref": "./examples/watchlists/CreateWatchlistItem.json" + } + }, + "tags": [ + "WatchlistItems" + ], + "description": "Creates or updates a watchlist item.", + "operationId": "WatchlistItems_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WatchlistAlias" + }, + { + "$ref": "#/parameters/WatchlistItemId" + }, + { + "$ref": "#/parameters/WatchlistItem" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WatchlistItem" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WatchlistItem" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "WatchlistList": { + "description": "List all the watchlists.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of watchlists.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of watchlist.", + "items": { + "$ref": "#/definitions/Watchlist" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + }, + "Watchlist": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Watchlist in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/WatchlistProperties", + "description": "Watchlist properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WatchlistProperties": { + "description": "Describes watchlist properties", + "properties": { + "watchlistId": { + "description": "The id (a Guid) of the watchlist", + "type": "string" + }, + "displayName": { + "description": "The display name of the watchlist", + "type": "string" + }, + "provider": { + "description": "The provider of the watchlist", + "type": "string" + }, + "source": { + "description": "The filename of the watchlist, called 'source'", + "type": "string" + }, + "sourceType": { + "description": "The sourceType of the watchlist", + "enum": [ + "Local file", + "Remote storage" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "sourceType" + } + }, + "created": { + "description": "The time the watchlist was created", + "format": "date-time", + "type": "string" + }, + "updated": { + "description": "The last time the watchlist was updated", + "format": "date-time", + "type": "string" + }, + "createdBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that created the watchlist", + "type": "object" + }, + "updatedBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that updated the watchlist", + "type": "object" + }, + "description": { + "description": "A description of the watchlist", + "type": "string" + }, + "watchlistType": { + "description": "The type of the watchlist", + "type": "string" + }, + "watchlistAlias": { + "description": "The alias of the watchlist", + "type": "string" + }, + "isDeleted": { + "description": "A flag that indicates if the watchlist is deleted or not", + "type": "boolean" + }, + "labels": { + "description": "List of labels relevant to this watchlist", + "items": { + "$ref": "../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array" + }, + "defaultDuration": { + "description": "The default duration of a watchlist (in ISO 8601 duration format)", + "format": "duration", + "type": "string" + }, + "tenantId": { + "description": "The tenantId where the watchlist belongs to", + "type": "string" + }, + "numberOfLinesToSkip": { + "description": "The number of lines in a csv/tsv content to skip before the header", + "type": "integer", + "format": "int32" + }, + "rawContent": { + "description": "The raw content that represents to watchlist items to create. In case of csv/tsv content type, it's the content of the file that will parsed by the endpoint", + "type": "string" + }, + "itemsSearchKey": { + "description": "The search key is used to optimize query performance when using watchlists for joins with other data. For example, enable a column with IP addresses to be the designated SearchKey field, then use this field as the key field when joining to other event data by IP address.", + "type": "string" + }, + "contentType": { + "description": "The content type of the raw content. Example : text/csv or text/tsv ", + "type": "string" + }, + "uploadStatus": { + "description": "The status of the Watchlist upload : New, InProgress or Complete. Pls note : When a Watchlist upload status is equal to InProgress, the Watchlist cannot be deleted", + "type": "string" + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + } + }, + "required": [ + "displayName", + "provider", + "itemsSearchKey" + ], + "type": "object" + }, + "WatchlistItemList": { + "description": "List all the watchlist items.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of watchlist item.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of watchlist items.", + "items": { + "$ref": "#/definitions/WatchlistItem" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "WatchlistItem": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "Represents a Watchlist item in Azure Security Insights.", + "properties": { + "properties": { + "$ref": "#/definitions/WatchlistItemProperties", + "description": "Watchlist Item properties", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WatchlistItemProperties": { + "description": "Describes watchlist item properties", + "properties": { + "watchlistItemType": { + "description": "The type of the watchlist item", + "type": "string" + }, + "watchlistItemId": { + "description": "The id (a Guid) of the watchlist item", + "type": "string" + }, + "tenantId": { + "description": "The tenantId to which the watchlist item belongs to", + "type": "string" + }, + "isDeleted": { + "description": "A flag that indicates if the watchlist item is deleted or not", + "type": "boolean" + }, + "created": { + "description": "The time the watchlist item was created", + "format": "date-time", + "type": "string" + }, + "updated": { + "description": "The last time the watchlist item was updated", + "format": "date-time", + "type": "string" + }, + "createdBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that created the watchlist item", + "type": "object" + }, + "updatedBy": { + "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that updated the watchlist item" + }, + "itemsKeyValue": { + "description": "key-value pairs for a watchlist item", + "type": "object" + }, + "entityMapping": { + "description": "key-value pairs for a watchlist item entity mapping", + "type": "object" + } + }, + "required": [ + "itemsKeyValue" + ], + "type": "object" + }, + "ProvisioningState": { + "description": "Describes provisioning state", + "enum": [ + "New", + "InProgress", + "Uploading", + "Deleting", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + }, + "readOnly": true + } + }, + "parameters": { + "WatchlistAlias": { + "description": "Watchlist Alias", + "in": "path", + "name": "watchlistAlias", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Watchlist": { + "description": "The watchlist", + "in": "body", + "name": "watchlist", + "required": true, + "schema": { + "$ref": "#/definitions/Watchlist" + }, + "x-ms-parameter-location": "method" + }, + "WatchlistItem": { + "description": "The watchlist item", + "in": "body", + "name": "watchlistItem", + "required": true, + "schema": { + "$ref": "#/definitions/WatchlistItem" + }, + "x-ms-parameter-location": "method" + }, + "WatchlistItemId": { + "description": "Watchlist Item Id (GUID)", + "in": "path", + "name": "watchlistItemId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerAssignments.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerAssignments.json new file mode 100644 index 000000000000..5b9e0d7b40bd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerAssignments.json @@ -0,0 +1,737 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerAssignments": { + "get": { + "x-ms-examples": { + "Get all workspace manager assignments for the Sentinel workspace manager.": { + "$ref": "./examples/workspaceManagerAssignments/GetAllWorkspaceManagerAssignments.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Get all workspace manager assignments for the Sentinel workspace manager.", + "operationId": "WorkspaceManagerAssignments_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerAssignmentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/{workspaceManagerAssignmentName}": { + "get": { + "x-ms-examples": { + "Get a workspace manager assignment": { + "$ref": "./examples/workspaceManagerAssignments/GetWorkspaceManagerAssignment.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Gets a workspace manager assignment", + "operationId": "WorkspaceManagerAssignments_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerAssignment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a workspace manager assignment.": { + "$ref": "./examples/workspaceManagerAssignments/CreateOrUpdateWorkspaceManagerAssignment.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Creates or updates a workspace manager assignment.", + "operationId": "WorkspaceManagerAssignments_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignment" + } + ], + "responses": { + "200": { + "description": "OK, created or updated an instance", + "schema": { + "$ref": "#/definitions/WorkspaceManagerAssignment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WorkspaceManagerAssignment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a workspace manager assignment.": { + "$ref": "./examples/workspaceManagerAssignments/DeleteWorkspaceManagerAssignment.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Deletes a workspace manager assignment", + "operationId": "WorkspaceManagerAssignments_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/{workspaceManagerAssignmentName}/jobs": { + "get": { + "x-ms-examples": { + "Get all jobs for the specified Sentinel workspace manager assignment.": { + "$ref": "./examples/workspaceManagerAssignments/GetAllJobs.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Get all jobs for the specified workspace manager assignment", + "operationId": "WorkspaceManagerAssignmentJobs_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/JobList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "x-ms-examples": { + "Creates a job for the specified workspace manager assignment": { + "$ref": "./examples/workspaceManagerAssignments/CreateJob.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Create a job for the specified workspace manager assignment", + "operationId": "WorkspaceManagerAssignmentJobs_Create", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + } + ], + "responses": { + "200": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Job" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/{workspaceManagerAssignmentName}/jobs/{jobName}": { + "get": { + "x-ms-examples": { + "Get a workspace manager job": { + "$ref": "./examples/workspaceManagerAssignments/GetJob.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Gets a job", + "operationId": "WorkspaceManagerAssignmentJobs_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + }, + { + "$ref": "#/parameters/JobName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Job" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a workspace manager job.": { + "$ref": "./examples/workspaceManagerAssignments/DeleteJob.json" + } + }, + "tags": [ + "workspaceManagerAssignments" + ], + "description": "Deletes the specified job from the specified workspace manager assignment", + "operationId": "WorkspaceManagerAssignmentJobs_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerAssignmentName" + }, + { + "$ref": "#/parameters/JobName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "WorkspaceManagerAssignment": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/AzureEntityResource" + } + ], + "description": "The workspace manager assignment", + "properties": { + "properties": { + "$ref": "#/definitions/WorkspaceManagerAssignmentProperties", + "description": "The workspace manager assignment object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WorkspaceManagerAssignmentProperties": { + "description": "The workspace manager assignment properties", + "properties": { + "targetResourceName": { + "description": "The resource name of the workspace manager group targeted by the workspace manager assignment", + "type": "string" + }, + "lastJobEndTime": { + "description": "The time the last job associated to this assignment ended at", + "format": "date-time", + "type": "string", + "readOnly": true + }, + "lastJobProvisioningState": { + "description": "State of the last job associated to this assignment", + "enum": [ + "Succeeded", + "InProgress", + "Canceled", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "provisioningState", + "values": [ + { + "description": "The job succeeded", + "value": "Succeeded" + }, + { + "description": "The job was canceled", + "value": "Canceled" + }, + { + "description": "The job is in progress", + "value": "InProgress" + }, + { + "description": "The job failed", + "value": "Failed" + } + ] + } + }, + "items": { + "description": "List of resources included in this workspace manager assignment", + "items": { + "$ref": "#/definitions/assignmentItem" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "required": [ + "targetResourceName", + "items" + ], + "type": "object" + }, + "assignmentItem": { + "description": "An entity describing a content item.", + "properties": { + "resourceId": { + "description": "The resource id of the content item", + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceManagerAssignmentList": { + "description": "List of all the workspace manager assignments.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of workspace manager assignments.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of workspace manager assignments.", + "items": { + "$ref": "#/definitions/WorkspaceManagerAssignment" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + }, + "Job": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "description": "The assignment job", + "properties": { + "properties": { + "$ref": "#/definitions/JobProperties", + "description": "The job object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "JobProperties": { + "description": "The job properties", + "properties": { + "endTime": { + "description": "The time the job completed", + "format": "date-time", + "type": "string", + "readOnly": true + }, + "items": { + "description": "List of items published by the job", + "items": { + "$ref": "#/definitions/jobItem" + }, + "x-ms-identifiers": [], + "type": "array" + }, + "provisioningState": { + "description": "State of the job", + "enum": [ + "Succeeded", + "InProgress", + "Canceled", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "provisioningState", + "values": [ + { + "description": "The job succeeded", + "value": "Succeeded" + }, + { + "description": "The job was canceled", + "value": "Canceled" + }, + { + "description": "The job is in progress", + "value": "InProgress" + }, + { + "description": "The job failed", + "value": "Failed" + } + ] + } + }, + "startTime": { + "description": "The time the job started", + "format": "date-time", + "type": "string", + "readOnly": true + }, + "errorMessage": { + "description": "Message to describe error, if an error exists", + "type": "string", + "readOnly": true + } + }, + "type": "object" + }, + "jobItem": { + "description": "An entity describing the publish status of a content item.", + "properties": { + "resourceId": { + "description": "The resource id of the content item", + "type": "string" + }, + "status": { + "description": "Status of the item publication", + "enum": [ + "Succeeded", + "Failed", + "InProgress" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "status", + "values": [ + { + "description": "The item publication succeeded", + "value": "Succeeded" + }, + { + "description": "The item publication failed", + "value": "Failed" + }, + { + "description": "The item publication is in progress", + "value": "InProgress" + } + ] + } + }, + "executionTime": { + "description": "The time the item publishing was completed", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "errors": { + "description": "The list of error descriptions if the item publication fails.", + "items": { + "$ref": "#/definitions/error" + }, + "x-ms-identifiers": [], + "type": "array" + } + }, + "type": "object" + }, + "error": { + "description": "The error description for why a publication failed", + "type": "object", + "properties": { + "memberResourceName": { + "description": "The member resource name for which the publication error occured", + "type": "string" + }, + "errorMessage": { + "description": "The error message", + "type": "string" + } + }, + "required": [ + "memberResourceName", + "errorMessage" + ] + }, + "JobList": { + "description": "List of all the jobs", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of jobs.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of jobs.", + "items": { + "$ref": "#/definitions/Job" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + } + }, + "parameters": { + "WorkspaceManagerAssignmentName": { + "description": "The name of the workspace manager assignment", + "in": "path", + "name": "workspaceManagerAssignmentName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + }, + "WorkspaceManagerAssignment": { + "description": "The workspace manager assignment", + "in": "body", + "name": "workspaceManagerAssignment", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceManagerAssignment" + }, + "x-ms-parameter-location": "method" + }, + "JobName": { + "description": "The job name", + "in": "path", + "name": "jobName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerConfigurations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerConfigurations.json new file mode 100644 index 000000000000..96123247ce35 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerConfigurations.json @@ -0,0 +1,323 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations": { + "get": { + "x-ms-examples": { + "Get all workspace manager configurations for a Sentinel workspace.": { + "$ref": "./examples/workspaceManagerConfigurations/GetAllWorkspaceManagerConfigurations.json" + } + }, + "tags": [ + "workspaceManagerConfigurations" + ], + "description": "Gets all workspace manager configurations for a Sentinel workspace.", + "operationId": "WorkspaceManagerConfigurations_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerConfigurationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations/{workspaceManagerConfigurationName}": { + "get": { + "x-ms-examples": { + "Get a workspace manager configuration.": { + "$ref": "./examples/workspaceManagerConfigurations/GetWorkspaceManagerConfiguration.json" + } + }, + "tags": [ + "workspaceManagerConfigurations" + ], + "description": "Gets a workspace manager configuration", + "operationId": "WorkspaceManagerConfigurations_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerConfigurationName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerConfiguration" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a workspace manager configuration.": { + "$ref": "./examples/workspaceManagerConfigurations/DeleteWorkspaceManagerConfiguration.json" + } + }, + "tags": [ + "workspaceManagerConfigurations" + ], + "description": "Deletes a workspace manager configuration", + "operationId": "WorkspaceManagerConfigurations_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerConfigurationName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create or Update a workspace manager Configuration": { + "$ref": "./examples/workspaceManagerConfigurations/CreateOrUpdateWorkspaceManagerConfiguration.json" + } + }, + "tags": [ + "workspaceManagerConfigurations" + ], + "description": "Creates or updates a workspace manager configuration.", + "operationId": "WorkspaceManagerConfigurations_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerConfigurationName" + }, + { + "$ref": "#/parameters/WorkspaceManagerConfiguration" + } + ], + "responses": { + "200": { + "description": "OK, created or updated an instance", + "schema": { + "$ref": "#/definitions/WorkspaceManagerConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WorkspaceManagerConfiguration" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "WorkspaceManagerConfiguration": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/AzureEntityResource" + } + ], + "description": "The workspace manager configuration", + "properties": { + "properties": { + "$ref": "#/definitions/WorkspaceManagerConfigurationProperties", + "description": "The workspace manager configuration object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WorkspaceManagerConfigurationProperties": { + "description": "The workspace manager configuration properties", + "properties": { + "mode": { + "description": "The current mode of the workspace manager configuration", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "mode", + "values": [ + { + "description": "The workspace manager configuration is enabled", + "value": "Enabled" + }, + { + "description": "The workspace manager configuration is disabled", + "value": "Disabled" + } + ] + } + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + "WorkspaceManagerConfigurationList": { + "description": "List all the workspace manager configurations for the workspace.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of workspace manager configurations.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of workspace manager configurations.", + "items": { + "$ref": "#/definitions/WorkspaceManagerConfiguration" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + } + }, + "parameters": { + "WorkspaceManagerConfigurationName": { + "description": "The name of the workspace manager configuration", + "in": "path", + "name": "workspaceManagerConfigurationName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + }, + "WorkspaceManagerConfiguration": { + "description": "The workspace manager configuration", + "in": "body", + "name": "workspaceManagerConfiguration", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceManagerConfiguration" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerGroups.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerGroups.json new file mode 100644 index 000000000000..292ba13f12f8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerGroups.json @@ -0,0 +1,318 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerGroups": { + "get": { + "x-ms-examples": { + "Get all workspace manager groups in the Sentinel workspace manager.": { + "$ref": "./examples/workspaceManagerGroups/GetAllWorkspaceManagerGroups.json" + } + }, + "tags": [ + "workspaceManagerGroups" + ], + "description": "Gets all workspace manager groups in the Sentinel workspace manager", + "operationId": "WorkspaceManagerGroups_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerGroupList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerGroups/{workspaceManagerGroupName}": { + "get": { + "x-ms-examples": { + "Get a workspace manager group": { + "$ref": "./examples/workspaceManagerGroups/GetWorkspaceManagerGroup.json" + } + }, + "tags": [ + "workspaceManagerGroups" + ], + "description": "Gets a workspace manager group", + "operationId": "WorkspaceManagerGroups_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerGroupName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerGroup" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "x-ms-examples": { + "Creates or updates a workspace manager group.": { + "$ref": "./examples/workspaceManagerGroups/CreateOrUpdateWorkspaceManagerGroup.json" + } + }, + "tags": [ + "workspaceManagerGroups" + ], + "description": "Creates or updates a workspace manager group.", + "operationId": "WorkspaceManagerGroups_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerGroupName" + }, + { + "$ref": "#/parameters/WorkspaceManagerGroup" + } + ], + "responses": { + "200": { + "description": "OK, created or updated an instance", + "schema": { + "$ref": "#/definitions/WorkspaceManagerGroup" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WorkspaceManagerGroup" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a workspace manager group.": { + "$ref": "./examples/workspaceManagerGroups/DeleteWorkspaceManagerGroup.json" + } + }, + "tags": [ + "workspaceManagerGroups" + ], + "description": "Deletes a workspace manager group", + "operationId": "WorkspaceManagerGroups_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerGroupName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "WorkspaceManagerGroup": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/AzureEntityResource" + } + ], + "description": "The workspace manager group", + "properties": { + "properties": { + "$ref": "#/definitions/WorkspaceManagerGroupProperties", + "description": "The workspace manager group object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WorkspaceManagerGroupProperties": { + "description": "The workspace manager group properties", + "properties": { + "description": { + "description": "The description of the workspace manager group", + "type": "string" + }, + "displayName": { + "description": "The display name of the workspace manager group", + "type": "string" + }, + "memberResourceNames": { + "description": "The names of the workspace manager members participating in this group.", + "items": { + "description": "memberResourceName", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "displayName", + "memberResourceNames" + ], + "type": "object" + }, + "WorkspaceManagerGroupList": { + "description": "List of all the workspace manager groups.", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of workspace manager groups.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of workspace manager groups.", + "items": { + "$ref": "#/definitions/WorkspaceManagerGroup" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + } + }, + "parameters": { + "WorkspaceManagerGroupName": { + "description": "The name of the workspace manager group", + "in": "path", + "name": "workspaceManagerGroupName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + }, + "WorkspaceManagerGroup": { + "description": "The workspace manager group object", + "in": "body", + "name": "workspaceManagerGroup", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceManagerGroup" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerMembers.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerMembers.json new file mode 100644 index 000000000000..4b0e050b0948 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerMembers.json @@ -0,0 +1,310 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerMembers/": { + "get": { + "x-ms-examples": { + "Get all workspace manager members": { + "$ref": "./examples/workspaceManagerMembers/GetAllWorkspaceManagerMembers.json" + } + }, + "tags": [ + "workspaceManagerMember" + ], + "description": "Gets all workspace manager members that exist for the given Sentinel workspace manager", + "operationId": "WorkspaceManagerMembers_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerMembersList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/workspaceManagerMembers/{workspaceManagerMemberName}": { + "get": { + "x-ms-examples": { + "Get a workspace manager member": { + "$ref": "./examples/workspaceManagerMembers/GetWorkspaceManagerMember.json" + } + }, + "tags": [ + "workspaceManagerMember" + ], + "description": "Gets a workspace manager member", + "operationId": "WorkspaceManagerMembers_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerMemberName" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/WorkspaceManagerMember" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create or Update a workspace manager member": { + "$ref": "./examples/workspaceManagerMembers/CreateOrUpdateWorkspaceManagerMember.json" + } + }, + "tags": [ + "workspaceManagerMember" + ], + "description": "Creates or updates a workspace manager member", + "operationId": "WorkspaceManagerMembers_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerMemberName" + }, + { + "$ref": "#/parameters/WorkspaceManagerMember" + } + ], + "responses": { + "200": { + "description": "OK, created or updated an instance", + "schema": { + "$ref": "#/definitions/WorkspaceManagerMember" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WorkspaceManagerMember" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete a workspace manager member": { + "$ref": "./examples/workspaceManagerMembers/DeleteWorkspaceManagerMember.json" + } + }, + "tags": [ + "workspaceManagerMember" + ], + "description": "Deletes a workspace manager member", + "operationId": "WorkspaceManagerMembers_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/WorkspaceManagerMemberName" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "WorkspaceManagerMemberProperties": { + "description": "The workspace manager member properties", + "properties": { + "targetWorkspaceResourceId": { + "description": "Fully qualified resource ID of the target Sentinel workspace joining the given Sentinel workspace manager", + "type": "string" + }, + "targetWorkspaceTenantId": { + "description": "Tenant id of the target Sentinel workspace joining the given Sentinel workspace manager", + "type": "string" + } + }, + "required": [ + "targetWorkspaceResourceId", + "targetWorkspaceTenantId" + ], + "type": "object" + }, + "WorkspaceManagerMember": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/AzureEntityResource" + } + ], + "description": "The workspace manager member", + "properties": { + "properties": { + "$ref": "#/definitions/WorkspaceManagerMemberProperties", + "description": "The workspace manager member object", + "x-ms-client-flatten": true + } + }, + "type": "object" + }, + "WorkspaceManagerMembersList": { + "description": "List of workspace manager members", + "type": "object", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of workspace manager members", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of workspace manager members", + "items": { + "$ref": "#/definitions/WorkspaceManagerMember" + }, + "type": "array" + } + }, + "required": [ + "value" + ] + } + }, + "parameters": { + "WorkspaceManagerMemberName": { + "description": "The name of the workspace manager member", + "in": "path", + "name": "workspaceManagerMemberName", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$", + "x-ms-parameter-location": "method" + }, + "WorkspaceManagerMember": { + "description": "The workspace manager member object", + "in": "body", + "name": "workspaceManagerMember", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceManagerMember" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/AlertTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/AlertTypes.json new file mode 100644 index 000000000000..d6c4885a18c2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/AlertTypes.json @@ -0,0 +1,81 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common Alert types" + }, + "paths": {}, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "definitions": { + "AlertSeverityEnum": { + "description": "The severity of the alert", + "enum": [ + "High", + "Medium", + "Low", + "Informational" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AlertSeverity", + "values": [ + { + "description": "High severity", + "value": "High" + }, + { + "description": "Medium severity", + "value": "Medium" + }, + { + "description": "Low severity", + "value": "Low" + }, + { + "description": "Informational severity", + "value": "Informational" + } + ] + } + }, + "AttackTactic": { + "description": "The severity for alerts created by this alert rule.", + "enum": [ + "Reconnaissance", + "ResourceDevelopment", + "InitialAccess", + "Execution", + "Persistence", + "PrivilegeEscalation", + "DefenseEvasion", + "CredentialAccess", + "Discovery", + "LateralMovement", + "Collection", + "Exfiltration", + "CommandAndControl", + "Impact", + "PreAttack", + "ImpairProcessControl", + "InhibitResponseFunction" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AttackTactic" + } + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ContentCommonTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ContentCommonTypes.json new file mode 100644 index 000000000000..5caf1f6c9ee4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ContentCommonTypes.json @@ -0,0 +1,662 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common content metadata types" + }, + "paths": {}, + "definitions": { + "metadataContentId": { + "description": "Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Can be optionally set for user created content to define dependencies. If an active content item is made from a metadata, both will have the same contentId.", + "type": "string" + }, + "metadataParentId": { + "description": "Full parent resource ID of the content item the metadata is for. This is the full resource ID including the scope (subscription and resource group)", + "type": "string" + }, + "metadataDisplayName": { + "description": "DisplayName of the content.", + "type": "string" + }, + "metadataVersion": { + "description": "Version of the content. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM template best practices. Can also be any string, but then we cannot guarantee any version checks", + "type": "string" + }, + "metadataPackageKind": { + "description": "The package kind", + "enum": [ + "Solution", + "Standalone" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "packageKind", + "values": [ + { + "value": "Solution" + }, + { + "value": "Standalone" + } + ] + } + }, + "metadataKind": { + "type": "string", + "description": "The kind of content the metadata is for.", + "enum": [ + "DataConnector", + "DataType", + "Workbook", + "WorkbookTemplate", + "Playbook", + "PlaybookTemplate", + "AnalyticsRuleTemplate", + "AnalyticsRule", + "HuntingQuery", + "InvestigationQuery", + "Parser", + "Watchlist", + "WatchlistTemplate", + "Solution", + "AzureFunction", + "LogicAppsCustomConnector", + "AutomationRule", + "ResourcesDataConnector", + "Notebook", + "Standalone", + "SummaryRule" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "kind", + "values": [ + { + "value": "DataConnector" + }, + { + "value": "DataType" + }, + { + "value": "Workbook" + }, + { + "value": "WorkbookTemplate" + }, + { + "value": "Playbook" + }, + { + "value": "PlaybookTemplate" + }, + { + "value": "AnalyticsRuleTemplate" + }, + { + "value": "AnalyticsRule" + }, + { + "value": "HuntingQuery" + }, + { + "value": "InvestigationQuery" + }, + { + "value": "Parser" + }, + { + "value": "Watchlist" + }, + { + "value": "WatchlistTemplate" + }, + { + "value": "Solution" + }, + { + "value": "AzureFunction" + }, + { + "value": "LogicAppsCustomConnector" + }, + { + "value": "AutomationRule" + }, + { + "value": "ResourcesDataConnector" + }, + { + "value": "Notebook" + }, + { + "value": "Standalone" + }, + { + "value": "SummaryRule" + } + ] + } + }, + "metadataTrueFalseFlag": { + "type": "string", + "description": "The boolean value the metadata is for.", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "flag", + "values": [ + { + "value": "true" + }, + { + "value": "false" + } + ] + } + }, + "metadataSource": { + "description": "The original source of the content item, where it comes from.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Source type of the content", + "type": "string", + "enum": [ + "LocalWorkspace", + "Community", + "Solution", + "SourceRepository" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "sourceKind", + "values": [ + { + "value": "LocalWorkspace" + }, + { + "value": "Community" + }, + { + "value": "Solution" + }, + { + "value": "SourceRepository" + } + ] + } + }, + "name": { + "description": "Name of the content source. The repo name, solution name, LA workspace name etc.", + "type": "string" + }, + "sourceId": { + "description": "ID of the content source. The solution ID, workspace ID, etc", + "type": "string" + } + } + }, + "metadataAuthor": { + "type": "object", + "description": "Publisher or creator of the content item.", + "properties": { + "name": { + "description": "Name of the author. Company or person.", + "type": "string" + }, + "email": { + "description": "Email of author contact", + "type": "string" + }, + "link": { + "description": "Link for author/vendor page", + "type": "string" + } + } + }, + "metadataSupport": { + "type": "object", + "description": "Support information for the content item.", + "required": [ + "tier" + ], + "properties": { + "tier": { + "description": "Type of support for content item", + "type": "string", + "enum": [ + "Microsoft", + "Partner", + "Community" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "supportTier", + "values": [ + { + "value": "Microsoft" + }, + { + "value": "Partner" + }, + { + "value": "Community" + } + ] + } + }, + "name": { + "description": "Name of the support contact. Company or person.", + "type": "string" + }, + "email": { + "description": "Email of support contact", + "type": "string" + }, + "link": { + "description": "Link for support help, like to support page to open a ticket etc.", + "type": "string" + } + } + }, + "metadataDependencies": { + "description": "Dependencies for the content item, what other content items it requires to work. Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex dependencies.", + "type": "object", + "properties": { + "contentId": { + "description": "Id of the content item we depend on", + "$ref": "#/definitions/metadataContentId" + }, + "kind": { + "description": "Type of the content item we depend on", + "$ref": "#/definitions/metadataKind" + }, + "version": { + "description": "Version of the the content item we depend on. Can be blank, * or missing to indicate any version fulfills the dependency. If version does not match our defined numeric format then an exact match is required.", + "$ref": "#/definitions/metadataVersion" + }, + "name": { + "description": "Name of the content item", + "type": "string" + }, + "operator": { + "description": "Operator used for list of dependencies in criteria array.", + "type": "string", + "enum": [ + "AND", + "OR" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "operator", + "values": [ + { + "value": "AND" + }, + { + "value": "OR" + } + ] + } + }, + "criteria": { + "description": "This is the list of dependencies we must fulfill, according to the AND/OR operator", + "type": "array", + "items": { + "$ref": "#/definitions/metadataDependencies", + "description": "Dependencies for the content item, what other content items it requires to work. Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats." + }, + "x-ms-identifiers": [ + "contentId" + ], + "example": [ + { + "kind": "DataConnector", + "contentId": "68b1de8a-b635-430d-b208-01ba3dda5877", + "version": "1.0.0" + }, + { + "kind": "Workbook", + "contentId": "ad903b46-9905-4504-9825-3bcce796da8e", + "version": "1.0.0" + } + ] + } + } + }, + "metadataCategories": { + "type": "object", + "description": "ies for the solution content item", + "properties": { + "domains": { + "description": "domain for the solution content item", + "type": "array", + "example": [ + "str1", + "str2", + "str3" + ], + "items": { + "type": "string" + } + }, + "verticals": { + "description": "Industry verticals for the solution content item", + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "str1", + "str2", + "str3" + ] + } + } + }, + "metadataProviders": { + "description": "Providers for the solution content item", + "type": "array", + "example": [ + "str1", + "str2", + "str3" + ], + "items": { + "type": "string" + } + }, + "metadataFirstPublishDate": { + "description": "first publish date of solution content item", + "type": "string", + "format": "date" + }, + "metadataLastPublishDate": { + "description": "last publish date of solution content item", + "type": "string", + "format": "date" + }, + "metadataCustomVersion": { + "description": "The custom version of the content. A optional free text", + "type": "string" + }, + "metadataContentSchemaVersion": { + "description": "Schema version of the content. Can be used to distinguish between different flow based on the schema version", + "type": "string" + }, + "metadataIcon": { + "description": "the icon identifier. this id can later be fetched from the metadata", + "type": "string" + }, + "metadataThreatAnalysisTactics": { + "description": "the tactics the resource covers", + "type": "array", + "example": [ + "reconnaissance", + "exfiltration" + ], + "items": { + "type": "string" + } + }, + "metadataThreatAnalysisTechniques": { + "description": "the techniques the resource covers, these have to be aligned with the tactics being used", + "type": "array", + "example": [ + "T1548", + "T1548.001", + "T1134.003" + ], + "items": { + "type": "string" + } + }, + "metadataPreviewImages": { + "description": "preview image file names. These will be taken from the solution artifacts", + "type": "array", + "example": [ + "example.png", + "example2.jpeg" + ], + "items": { + "type": "string" + } + }, + "metadataPreviewImagesDark": { + "description": "preview image file names. These will be taken from the solution artifacts. used for dark theme support", + "type": "array", + "example": [ + "example.png", + "example2.jpeg" + ], + "items": { + "type": "string" + } + }, + "metadataTags": { + "description": "the tags assigned to the resource", + "type": "array", + "example": [ + "str1", + "str2", + "str3" + ], + "items": { + "type": "string" + } + }, + "templateBaseProperties": { + "description": "Template property bag.", + "type": "object", + "properties": { + "contentId": { + "$ref": "#/definitions/metadataContentId", + "description": "Static ID for the content. Used to identify dependencies and content from solutions or community. Hard-coded/static for out of the box content and solutions. Dynamic for user-created. This is the resource name" + }, + "contentProductId": { + "type": "string", + "description": "Unique ID for the content. It should be generated based on the contentId of the package, contentId of the template, contentKind of the template and the contentVersion of the template" + }, + "packageVersion": { + "$ref": "#/definitions/metadataVersion", + "description": "Version of the package. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices. Can also be any string, but then we cannot guarantee any version checks" + }, + "version": { + "$ref": "#/definitions/metadataVersion", + "description": "Version of the content. Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices. Can also be any string, but then we cannot guarantee any version checks" + }, + "displayName": { + "$ref": "#/definitions/metadataDisplayName", + "description": "The display name of the template" + }, + "contentKind": { + "$ref": "#/definitions/metadataKind", + "description": "The kind of content the template is for." + }, + "source": { + "$ref": "#/definitions/metadataSource", + "description": "Source of the content. This is where/how it was created." + }, + "author": { + "$ref": "#/definitions/metadataAuthor", + "description": "The creator of the content item." + }, + "support": { + "$ref": "#/definitions/metadataSupport", + "description": "Support information for the template - type, name, contact information" + }, + "dependencies": { + "$ref": "#/definitions/metadataDependencies", + "description": "Dependencies for the content item, what other content items it requires to work. Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats." + }, + "categories": { + "$ref": "#/definitions/metadataCategories", + "description": "Categories for the item" + }, + "providers": { + "$ref": "#/definitions/metadataProviders", + "description": "Providers for the content item" + }, + "firstPublishDate": { + "$ref": "#/definitions/metadataFirstPublishDate", + "description": "first publish date content item" + }, + "lastPublishDate": { + "$ref": "#/definitions/metadataLastPublishDate", + "description": "last publish date for the content item" + }, + "customVersion": { + "$ref": "#/definitions/metadataCustomVersion", + "description": "The custom version of the content. A optional free text" + }, + "contentSchemaVersion": { + "$ref": "#/definitions/metadataContentSchemaVersion", + "description": "Schema version of the content. Can be used to distinguish between different flow based on the schema version" + }, + "icon": { + "$ref": "#/definitions/metadataIcon", + "description": "the icon identifier. this id can later be fetched from the content metadata" + }, + "threatAnalysisTactics": { + "$ref": "#/definitions/metadataThreatAnalysisTactics", + "description": "the tactics the resource covers" + }, + "threatAnalysisTechniques": { + "$ref": "#/definitions/metadataThreatAnalysisTechniques", + "description": "the techniques the resource covers, these have to be aligned with the tactics being used" + }, + "previewImages": { + "$ref": "#/definitions/metadataPreviewImages", + "description": "preview image file names. These will be taken from the solution artifacts" + }, + "previewImagesDark": { + "$ref": "#/definitions/metadataPreviewImagesDark", + "description": "preview image file names. These will be taken from the solution artifacts. used for dark theme support" + }, + "packageId": { + "$ref": "#/definitions/metadataContentId", + "description": "the package Id contains this template" + }, + "packageKind": { + "$ref": "#/definitions/metadataPackageKind", + "description": "the packageKind of the package contains this template" + }, + "packageName": { + "$ref": "#/definitions/metadataDisplayName", + "description": "the name of the package contains this template" + }, + "isDeprecated": { + "$ref": "#/definitions/metadataTrueFalseFlag", + "description": "Flag indicates if this template is deprecated", + "readOnly": true + } + } + }, + "packageBaseProperties": { + "description": "Describes package properties", + "properties": { + "contentId": { + "$ref": "#/definitions/metadataContentId", + "description": "The content id of the package" + }, + "contentProductId": { + "type": "string", + "description": "Unique ID for the content. It should be generated based on the contentId, contentKind and the contentVersion of the package" + }, + "contentKind": { + "$ref": "#/definitions/metadataPackageKind", + "description": "The package kind" + }, + "contentSchemaVersion": { + "$ref": "#/definitions/metadataVersion", + "description": "The version of the content schema." + }, + "isNew": { + "$ref": "#/definitions/metadataTrueFalseFlag", + "description": "Flag indicates if this is a newly published package." + }, + "isPreview": { + "$ref": "#/definitions/metadataTrueFalseFlag", + "description": "Flag indicates if this package is in preview." + }, + "isFeatured": { + "$ref": "#/definitions/metadataTrueFalseFlag", + "description": "Flag indicates if this package is among the featured list." + }, + "isDeprecated": { + "$ref": "#/definitions/metadataTrueFalseFlag", + "description": "Flag indicates if this template is deprecated" + }, + "version": { + "$ref": "#/definitions/metadataVersion", + "description": "the latest version number of the package" + }, + "displayName": { + "$ref": "#/definitions/metadataDisplayName", + "description": "The display name of the package" + }, + "description": { + "description": "The description of the package", + "type": "string" + }, + "publisherDisplayName": { + "$ref": "#/definitions/metadataDisplayName", + "description": "The publisher display name of the package" + }, + "source": { + "$ref": "#/definitions/metadataSource", + "description": "The source of the package" + }, + "author": { + "$ref": "#/definitions/metadataAuthor", + "description": "The author of the package" + }, + "support": { + "$ref": "#/definitions/metadataSupport", + "description": "The support tier of the package" + }, + "dependencies": { + "$ref": "#/definitions/metadataDependencies", + "description": "The support tier of the package" + }, + "providers": { + "$ref": "#/definitions/metadataProviders", + "description": "Providers for the package item" + }, + "firstPublishDate": { + "$ref": "#/definitions/metadataFirstPublishDate", + "description": "first publish date package item" + }, + "lastPublishDate": { + "$ref": "#/definitions/metadataLastPublishDate", + "description": "last publish date for the package item" + }, + "categories": { + "$ref": "#/definitions/metadataCategories", + "description": "The categories of the package" + }, + "threatAnalysisTactics": { + "$ref": "#/definitions/metadataThreatAnalysisTactics", + "description": "the tactics the resource covers" + }, + "threatAnalysisTechniques": { + "$ref": "#/definitions/metadataThreatAnalysisTechniques", + "description": "the techniques the resource covers, these have to be aligned with the tactics being used" + }, + "icon": { + "$ref": "#/definitions/metadataIcon", + "description": "the icon identifier. this id can later be fetched from the content metadata" + } + }, + "type": "object" + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/EntityTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/EntityTypes.json new file mode 100644 index 000000000000..6d88c3d95128 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/EntityTypes.json @@ -0,0 +1,2550 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common Entity types" + }, + "paths": {}, + "definitions": { + "AccountEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents an account entity.", + "properties": { + "properties": { + "$ref": "#/definitions/AccountEntityProperties", + "description": "Account entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Account" + }, + "AccountEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Account entity property bag.", + "properties": { + "aadTenantId": { + "description": "The Azure Active Directory tenant id.", + "readOnly": true, + "type": "string" + }, + "aadUserId": { + "description": "The Azure Active Directory user id.", + "readOnly": true, + "type": "string" + }, + "accountName": { + "description": "The name of the account. This field should hold only the name without any domain added to it, i.e. administrator.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The display name of the account.", + "readOnly": true, + "type": "string" + }, + "hostEntityId": { + "description": "The Host entity id that contains the account in case it is a local account (not domain joined)", + "readOnly": true, + "type": "string" + }, + "isDomainJoined": { + "description": "Determines whether this is a domain account.", + "readOnly": true, + "type": "boolean" + }, + "ntDomain": { + "description": "The NetBIOS domain name as it appears in the alert format domain/username. Examples: NT AUTHORITY.", + "readOnly": true, + "type": "string" + }, + "objectGuid": { + "description": "The objectGUID attribute is a single-value attribute that is the unique identifier for the object, assigned by active directory.", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "puid": { + "description": "The Azure Active Directory Passport User ID.", + "readOnly": true, + "type": "string" + }, + "sid": { + "description": "The account security identifier, e.g. S-1-5-18.", + "readOnly": true, + "type": "string" + }, + "upnSuffix": { + "description": "The user principal name suffix for the account, in some cases it is also the domain name. Examples: contoso.com.", + "readOnly": true, + "type": "string" + }, + "dnsDomain": { + "description": "The fully qualified domain DNS name.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AzureResourceEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents an azure resource entity.", + "properties": { + "properties": { + "$ref": "#/definitions/AzureResourceEntityProperties", + "description": "AzureResource entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureResource" + }, + "AzureResourceEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "AzureResource entity property bag.", + "properties": { + "resourceId": { + "description": "The azure resource id of the resource", + "readOnly": true, + "type": "string" + }, + "subscriptionId": { + "description": "The subscription id of the resource", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CloudApplicationEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a cloud application entity.", + "properties": { + "properties": { + "$ref": "#/definitions/CloudApplicationEntityProperties", + "description": "CloudApplication entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "CloudApplication" + }, + "CloudApplicationEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "CloudApplication entity property bag.", + "properties": { + "appId": { + "description": "The technical identifier of the application.", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "appName": { + "description": "The name of the related cloud application.", + "readOnly": true, + "type": "string" + }, + "instanceName": { + "description": "The user defined instance name of the cloud application. It is often used to distinguish between several applications of the same type that a customer has.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DnsEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a dns entity.", + "properties": { + "properties": { + "$ref": "#/definitions/DnsEntityProperties", + "description": "Dns entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "DnsResolution" + }, + "DnsEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Dns entity property bag.", + "properties": { + "dnsServerIpEntityId": { + "description": "An ip entity id for the dns server resolving the request", + "readOnly": true, + "type": "string" + }, + "domainName": { + "description": "The name of the dns record associated with the alert", + "readOnly": true, + "type": "string" + }, + "hostIpAddressEntityId": { + "description": "An ip entity id for the dns request client", + "readOnly": true, + "type": "string" + }, + "ipAddressEntityIds": { + "description": "Ip entity identifiers for the resolved ip address.", + "items": { + "description": "Ip entity id", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "Entity": { + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ], + "properties": { + "kind": { + "$ref": "#/definitions/EntityInnerKind", + "description": "The kind of the entity." + } + }, + "description": "Specific entity.", + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "EntityCommonProperties": { + "description": "Entity common property bag.", + "properties": { + "additionalData": { + "additionalProperties": true, + "description": "A bag of custom fields that should be part of the entity and will be presented to the user.", + "readOnly": true, + "type": "object" + }, + "friendlyName": { + "description": "The graph item display name which is a short humanly readable description of the graph item instance. This property is optional and might be system generated.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "EntityInnerKind": { + "description": "The kind of the entity", + "enum": [ + "Account", + "Host", + "File", + "AzureResource", + "CloudApplication", + "DnsResolution", + "FileHash", + "Ip", + "Malware", + "Process", + "RegistryKey", + "RegistryValue", + "SecurityGroup", + "Url", + "IoTDevice", + "SecurityAlert", + "Bookmark", + "Mailbox", + "MailCluster", + "MailMessage", + "SubmissionMail", + "Nic" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityKindEnum", + "values": [ + { + "description": "Entity represents account in the system.", + "value": "Account" + }, + { + "description": "Entity represents host in the system.", + "value": "Host" + }, + { + "description": "Entity represents file in the system.", + "value": "File" + }, + { + "description": "Entity represents azure resource in the system.", + "value": "AzureResource" + }, + { + "description": "Entity represents cloud application in the system.", + "value": "CloudApplication" + }, + { + "description": "Entity represents dns resolution in the system.", + "value": "DnsResolution" + }, + { + "description": "Entity represents file hash in the system.", + "value": "FileHash" + }, + { + "description": "Entity represents ip in the system.", + "value": "Ip" + }, + { + "description": "Entity represents malware in the system.", + "value": "Malware" + }, + { + "description": "Entity represents process in the system.", + "value": "Process" + }, + { + "description": "Entity represents registry key in the system.", + "value": "RegistryKey" + }, + { + "description": "Entity represents registry value in the system.", + "value": "RegistryValue" + }, + { + "description": "Entity represents security group in the system.", + "value": "SecurityGroup" + }, + { + "description": "Entity represents url in the system.", + "value": "Url" + }, + { + "description": "Entity represents IoT device in the system.", + "value": "IoTDevice" + }, + { + "description": "Entity represents security alert in the system.", + "value": "SecurityAlert" + }, + { + "description": "Entity represents bookmark in the system.", + "value": "Bookmark" + }, + { + "description": "Entity represents mail cluster in the system.", + "value": "MailCluster" + }, + { + "description": "Entity represents mail message in the system.", + "value": "MailMessage" + }, + { + "description": "Entity represents mailbox in the system.", + "value": "Mailbox" + }, + { + "description": "Entity represents submission mail in the system.", + "value": "SubmissionMail" + }, + { + "description": "Entity represents network interface in the system.", + "value": "Nic" + } + ] + } + }, + "EntityInnerType": { + "description": "The type of the entity", + "enum": [ + "Account", + "Host", + "File", + "AzureResource", + "CloudApplication", + "DNS", + "FileHash", + "IP", + "Malware", + "Process", + "RegistryKey", + "RegistryValue", + "SecurityGroup", + "URL", + "IoTDevice", + "SecurityAlert", + "HuntingBookmark", + "MailCluster", + "MailMessage", + "Mailbox", + "SubmissionMail", + "Nic" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityType", + "values": [ + { + "description": "Entity represents account in the system.", + "value": "Account" + }, + { + "description": "Entity represents host in the system.", + "value": "Host" + }, + { + "description": "Entity represents file in the system.", + "value": "File" + }, + { + "description": "Entity represents azure resource in the system.", + "value": "AzureResource" + }, + { + "description": "Entity represents cloud application in the system.", + "value": "CloudApplication" + }, + { + "description": "Entity represents dns in the system.", + "value": "DNS" + }, + { + "description": "Entity represents file hash in the system.", + "value": "FileHash" + }, + { + "description": "Entity represents ip in the system.", + "value": "IP" + }, + { + "description": "Entity represents malware in the system.", + "value": "Malware" + }, + { + "description": "Entity represents process in the system.", + "value": "Process" + }, + { + "description": "Entity represents registry key in the system.", + "value": "RegistryKey" + }, + { + "description": "Entity represents registry value in the system.", + "value": "RegistryValue" + }, + { + "description": "Entity represents security group in the system.", + "value": "SecurityGroup" + }, + { + "description": "Entity represents url in the system.", + "value": "URL" + }, + { + "description": "Entity represents IoT device in the system.", + "value": "IoTDevice" + }, + { + "description": "Entity represents security alert in the system.", + "value": "SecurityAlert" + }, + { + "description": "Entity represents HuntingBookmark in the system.", + "value": "HuntingBookmark" + }, + { + "description": "Entity represents mail cluster in the system.", + "value": "MailCluster" + }, + { + "description": "Entity represents mail message in the system.", + "value": "MailMessage" + }, + { + "description": "Entity represents mailbox in the system.", + "value": "Mailbox" + }, + { + "description": "Entity represents submission mail in the system.", + "value": "SubmissionMail" + }, + { + "description": "Entity represents network interface in the system.", + "value": "Nic" + } + ] + } + }, + "EntityQueryKind": { + "description": "The kind of the entity query", + "enum": [ + "Expansion", + "Insight", + "Activity" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "EntityQueryKind", + "values": [ + { + "value": "Expansion" + }, + { + "value": "Insight" + }, + { + "value": "Activity" + } + ] + } + }, + "ExpansionResultAggregation": { + "description": "Information of a specific aggregation in the expansion result.", + "properties": { + "aggregationType": { + "description": "The common type of the aggregation. (for e.g. entity field name)", + "type": "string" + }, + "count": { + "description": "Total number of aggregations of the given kind (and aggregationType if given) in the expansion result.", + "type": "integer", + "format": "int32" + }, + "displayName": { + "description": "The display name of the aggregation by type.", + "type": "string" + }, + "entityKind": { + "$ref": "#/definitions/EntityInnerKind", + "description": "The kind of the aggregated entity." + } + }, + "required": [ + "entityKind", + "count" + ], + "type": "object" + }, + "ExpansionResultsMetadata": { + "description": "Expansion result metadata.", + "properties": { + "aggregations": { + "description": "Information of the aggregated nodes in the expansion result.", + "items": { + "$ref": "#/definitions/ExpansionResultAggregation" + }, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "FileEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a file entity.", + "properties": { + "properties": { + "$ref": "#/definitions/FileEntityProperties", + "description": "File entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "File" + }, + "FileEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "File entity property bag.", + "properties": { + "directory": { + "description": "The full path to the file.", + "readOnly": true, + "type": "string" + }, + "fileHashEntityIds": { + "description": "The file hash entity identifiers associated with this file", + "items": { + "description": "file hash id", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "fileName": { + "description": "The file name without path (some alerts might not include path).", + "readOnly": true, + "type": "string" + }, + "hostEntityId": { + "description": "The Host entity id which the file belongs to", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FileHashEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a file hash entity.", + "properties": { + "properties": { + "$ref": "#/definitions/FileHashEntityProperties", + "description": "FileHash entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "FileHash" + }, + "FileHashEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "FileHash entity property bag.", + "properties": { + "algorithm": { + "description": "The hash algorithm type.", + "enum": [ + "Unknown", + "MD5", + "SHA1", + "SHA256", + "SHA256AC" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "FileHashAlgorithm", + "values": [ + { + "description": "Unknown hash algorithm", + "value": "Unknown" + }, + { + "description": "MD5 hash type", + "value": "MD5" + }, + { + "description": "SHA1 hash type", + "value": "SHA1" + }, + { + "description": "SHA256 hash type", + "value": "SHA256" + }, + { + "description": "SHA256 Authenticode hash type", + "value": "SHA256AC" + } + ] + } + }, + "hashValue": { + "description": "The file hash value.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "HostEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a host entity.", + "properties": { + "properties": { + "$ref": "#/definitions/HostEntityProperties", + "description": "Host entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Host" + }, + "HostEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Host entity property bag.", + "properties": { + "azureID": { + "description": "The azure resource id of the VM.", + "readOnly": true, + "type": "string" + }, + "dnsDomain": { + "description": "The DNS domain that this host belongs to. Should contain the compete DNS suffix for the domain", + "readOnly": true, + "type": "string" + }, + "hostName": { + "description": "The hostname without the domain suffix.", + "readOnly": true, + "type": "string" + }, + "isDomainJoined": { + "description": "Determines whether this host belongs to a domain.", + "readOnly": true, + "type": "boolean" + }, + "netBiosName": { + "description": "The host name (pre-windows2000).", + "readOnly": true, + "type": "string" + }, + "ntDomain": { + "description": "The NT domain that this host belongs to.", + "readOnly": true, + "type": "string" + }, + "omsAgentID": { + "description": "The OMS agent id, if the host has OMS agent installed.", + "readOnly": true, + "type": "string" + }, + "osFamily": { + "description": "The operating system type.", + "enum": [ + "Linux", + "Windows", + "Android", + "IOS", + "Unknown" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": false, + "name": "OSFamily", + "values": [ + { + "description": "Host with Linux operating system.", + "value": "Linux" + }, + { + "description": "Host with Windows operating system.", + "value": "Windows" + }, + { + "description": "Host with Android operating system.", + "value": "Android" + }, + { + "description": "Host with IOS operating system.", + "value": "IOS" + }, + { + "description": "Host with Unknown operating system.", + "value": "Unknown" + } + ] + } + }, + "osVersion": { + "description": "A free text representation of the operating system. This field is meant to hold specific versions the are more fine grained than OSFamily or future values not supported by OSFamily enumeration", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "HuntingBookmark": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a Hunting bookmark entity.", + "properties": { + "properties": { + "$ref": "#/definitions/HuntingBookmarkProperties", + "description": "HuntingBookmark entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Bookmark" + }, + "HuntingBookmarkProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Describes bookmark properties", + "properties": { + "created": { + "description": "The time the bookmark was created", + "format": "date-time", + "type": "string" + }, + "createdBy": { + "$ref": "../../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that created the bookmark", + "type": "object" + }, + "displayName": { + "description": "The display name of the bookmark", + "type": "string" + }, + "eventTime": { + "description": "The time of the event", + "format": "date-time", + "type": "string" + }, + "labels": { + "description": "List of labels relevant to this bookmark", + "items": { + "$ref": "../../../../common/2.0/types.json#/definitions/Label" + }, + "type": "array", + "x-ms-identifiers": [] + }, + "notes": { + "description": "The notes of the bookmark", + "type": "string" + }, + "query": { + "description": "The query of the bookmark.", + "type": "string" + }, + "queryResult": { + "description": "The query result of the bookmark.", + "type": "string" + }, + "updated": { + "description": "The last time the bookmark was updated", + "format": "date-time", + "type": "string" + }, + "updatedBy": { + "$ref": "../../../../common/2.0/types.json#/definitions/UserInfo", + "description": "Describes a user that updated the bookmark", + "type": "object" + }, + "incidentInfo": { + "$ref": "IncidentTypes.json#/definitions/IncidentInfo", + "description": "Describes an incident that relates to bookmark", + "type": "object" + } + }, + "required": [ + "displayName", + "query" + ], + "type": "object" + }, + "IoTDeviceEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents an IoT device entity.", + "properties": { + "properties": { + "$ref": "#/definitions/IoTDeviceEntityProperties", + "description": "IoTDevice entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "IoTDevice" + }, + "IoTDeviceEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "IoTDevice entity property bag.", + "properties": { + "deviceId": { + "description": "The ID of the IoT Device in the IoT Hub", + "readOnly": true, + "type": "string" + }, + "deviceName": { + "description": "The friendly name of the device", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "The source of the device", + "readOnly": true, + "type": "string" + }, + "iotSecurityAgentId": { + "description": "The ID of the security agent running on the device", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "deviceType": { + "description": "The type of the device", + "readOnly": true, + "type": "string" + }, + "vendor": { + "description": "The vendor of the device", + "readOnly": true, + "type": "string" + }, + "edgeId": { + "description": "The ID of the edge device", + "readOnly": true, + "type": "string" + }, + "macAddress": { + "description": "The MAC address of the device", + "readOnly": true, + "type": "string" + }, + "model": { + "description": "The model of the device", + "readOnly": true, + "type": "string" + }, + "serialNumber": { + "description": "The serial number of the device", + "readOnly": true, + "type": "string" + }, + "firmwareVersion": { + "description": "The firmware version of the device", + "readOnly": true, + "type": "string" + }, + "operatingSystem": { + "description": "The operating system of the device", + "readOnly": true, + "type": "string" + }, + "iotHubEntityId": { + "description": "The AzureResource entity id of the IoT Hub", + "readOnly": true, + "type": "string" + }, + "hostEntityId": { + "description": "The Host entity id of this device", + "readOnly": true, + "type": "string" + }, + "ipAddressEntityId": { + "description": "The IP entity if of this device", + "readOnly": true, + "type": "string" + }, + "threatIntelligence": { + "description": "A list of TI contexts attached to the IoTDevice entity.", + "items": { + "$ref": "ThreatIntelligenceTypes.json#/definitions/ThreatIntelligence" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "protocols": { + "description": "A list of protocols of the IoTDevice entity.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "owners": { + "description": "A list of owners of the IoTDevice entity.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "nicEntityIds": { + "description": "A list of Nic entity ids of the IoTDevice entity.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "site": { + "description": "The site of the device", + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "The zone location of the device within a site", + "readOnly": true, + "type": "string" + }, + "sensor": { + "description": "The sensor the device is monitored by", + "readOnly": true, + "type": "string" + }, + "deviceSubType": { + "description": "The subType of the device ('PLC', 'HMI', 'EWS', etc.)", + "readOnly": true, + "type": "string" + }, + "importance": { + "description": "Device importance, determines if the device classified as 'crown jewel'", + "enum": [ + "Unknown", + "Low", + "Normal", + "High" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DeviceImportance", + "values": [ + { + "description": "Unknown - Default value", + "value": "Unknown" + }, + { + "description": "Low", + "value": "Low" + }, + { + "description": "Normal", + "value": "Normal" + }, + { + "description": "High", + "value": "High" + } + ] + } + }, + "purdueLayer": { + "description": "The Purdue Layer of the device", + "readOnly": true, + "type": "string" + }, + "isAuthorized": { + "description": "Determines whether the device classified as authorized device", + "readOnly": true, + "type": "boolean" + }, + "isProgramming": { + "description": "Determines whether the device classified as programming device", + "readOnly": true, + "type": "boolean" + }, + "isScanner": { + "description": "Is the device classified as a scanner device", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "IpEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents an ip entity.", + "properties": { + "properties": { + "$ref": "#/definitions/IpEntityProperties", + "description": "Ip entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Ip" + }, + "IpEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Ip entity property bag.", + "properties": { + "address": { + "description": "The IP address as string, e.g. 127.0.0.1 (either in Ipv4 or Ipv6)", + "readOnly": true, + "type": "string" + }, + "location": { + "$ref": "#/definitions/GeoLocation", + "description": "The geo-location context attached to the ip entity" + }, + "threatIntelligence": { + "description": "A list of TI contexts attached to the ip entity.", + "items": { + "$ref": "ThreatIntelligenceTypes.json#/definitions/ThreatIntelligence" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "GeoLocation": { + "description": "The geo-location context attached to the ip entity", + "properties": { + "asn": { + "description": "Autonomous System Number", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "city": { + "description": "City name", + "readOnly": true, + "type": "string" + }, + "countryCode": { + "description": "The country code according to ISO 3166 format", + "readOnly": true, + "type": "string" + }, + "countryName": { + "description": "Country name according to ISO 3166 Alpha 2: the lowercase of the English Short Name", + "readOnly": true, + "type": "string" + }, + "latitude": { + "description": "The latitude of the identified location, expressed as a floating point number with range of - 90 to 90. Latitude and longitude are derived from the city or postal code.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "longitude": { + "description": "The longitude of the identified location, expressed as a floating point number with range of -180 to 180. Latitude and longitude are derived from the city or postal code.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "state": { + "description": "State name", + "readOnly": true, + "type": "string" + } + }, + "readOnly": true, + "type": "object" + }, + "MailboxEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a mailbox entity.", + "properties": { + "properties": { + "$ref": "#/definitions/MailboxEntityProperties", + "description": "Mailbox entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Mailbox" + }, + "MailboxEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Mailbox entity property bag.", + "properties": { + "mailboxPrimaryAddress": { + "description": "The mailbox's primary address", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The mailbox's display name", + "readOnly": true, + "type": "string" + }, + "upn": { + "description": "The mailbox's UPN", + "readOnly": true, + "type": "string" + }, + "externalDirectoryObjectId": { + "description": "The AzureAD identifier of mailbox. Similar to AadUserId in account entity but this property is specific to mailbox object on office side", + "format": "uuid", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MailClusterEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a mail cluster entity.", + "properties": { + "properties": { + "$ref": "#/definitions/MailClusterEntityProperties", + "description": "Mail cluster entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MailCluster" + }, + "MailClusterEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Mail cluster entity property bag.", + "properties": { + "networkMessageIds": { + "description": "The mail message IDs that are part of the mail cluster", + "items": { + "description": "A mail message ID", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "countByDeliveryStatus": { + "description": "Count of mail messages by DeliveryStatus string representation", + "readOnly": true, + "type": "object" + }, + "countByThreatType": { + "description": "Count of mail messages by ThreatType string representation", + "readOnly": true, + "type": "object" + }, + "countByProtectionStatus": { + "description": "Count of mail messages by ProtectionStatus string representation", + "readOnly": true, + "type": "object" + }, + "threats": { + "description": "The threats of mail messages that are part of the mail cluster", + "items": { + "description": "A threat", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "query": { + "description": "The query that was used to identify the messages of the mail cluster", + "readOnly": true, + "type": "string" + }, + "queryTime": { + "description": "The query time", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "mailCount": { + "description": "The number of mail messages that are part of the mail cluster", + "readOnly": true, + "type": "integer", + "format": "int32" + }, + "isVolumeAnomaly": { + "description": "Is this a volume anomaly mail cluster", + "readOnly": true, + "type": "boolean" + }, + "source": { + "description": "The source of the mail cluster (default is 'O365 ATP')", + "readOnly": true, + "type": "string" + }, + "clusterSourceIdentifier": { + "description": "The id of the cluster source", + "readOnly": true, + "type": "string" + }, + "clusterSourceType": { + "description": "The type of the cluster source", + "readOnly": true, + "type": "string" + }, + "clusterQueryStartTime": { + "description": "The cluster query start time", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "clusterQueryEndTime": { + "description": "The cluster query end time", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "clusterGroup": { + "description": "The cluster group", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MailMessageEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a mail message entity.", + "properties": { + "properties": { + "$ref": "#/definitions/MailMessageEntityProperties", + "description": "Mail message entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MailMessage" + }, + "MailMessageEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Mail message entity property bag.", + "properties": { + "fileEntityIds": { + "description": "The File entity ids of this mail message's attachments", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "recipient": { + "description": "The recipient of this mail message. Note that in case of multiple recipients the mail message is forked and each copy has one recipient", + "readOnly": true, + "type": "string" + }, + "urls": { + "description": "The Urls contained in this mail message", + "items": { + "description": "A Url contained in this mail message", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "threats": { + "description": "The threats of this mail message", + "items": { + "description": "A threat of the mail message", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "p1Sender": { + "description": "The p1 sender's email address", + "readOnly": true, + "type": "string" + }, + "p1SenderDisplayName": { + "description": "The p1 sender's display name", + "readOnly": true, + "type": "string" + }, + "p1SenderDomain": { + "description": "The p1 sender's domain", + "readOnly": true, + "type": "string" + }, + "senderIP": { + "description": "The sender's IP address", + "readOnly": true, + "type": "string" + }, + "p2Sender": { + "description": "The p2 sender's email address", + "readOnly": true, + "type": "string" + }, + "p2SenderDisplayName": { + "description": "The p2 sender's display name", + "readOnly": true, + "type": "string" + }, + "p2SenderDomain": { + "description": "The p2 sender's domain", + "readOnly": true, + "type": "string" + }, + "receiveDate": { + "description": "The receive date of this message", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "networkMessageId": { + "description": "The network message id of this mail message", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "internetMessageId": { + "description": "The internet message id of this mail message", + "readOnly": true, + "type": "string" + }, + "subject": { + "description": "The subject of this mail message", + "readOnly": true, + "type": "string" + }, + "language": { + "description": "The language of this mail message", + "readOnly": true, + "type": "string" + }, + "threatDetectionMethods": { + "description": "The threat detection methods", + "items": { + "description": "A threat detection method", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "bodyFingerprintBin1": { + "description": "The bodyFingerprintBin1", + "type": "integer", + "format": "int32" + }, + "bodyFingerprintBin2": { + "description": "The bodyFingerprintBin2", + "type": "integer", + "format": "int32" + }, + "bodyFingerprintBin3": { + "description": "The bodyFingerprintBin3", + "type": "integer", + "format": "int32" + }, + "bodyFingerprintBin4": { + "description": "The bodyFingerprintBin4", + "type": "integer", + "format": "int32" + }, + "bodyFingerprintBin5": { + "description": "The bodyFingerprintBin5", + "type": "integer", + "format": "int32" + }, + "antispamDirection": { + "description": "The directionality of this mail message", + "enum": [ + "Unknown", + "Inbound", + "Outbound", + "Intraorg" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AntispamMailDirection", + "values": [ + { + "description": "Unknown", + "value": "Unknown" + }, + { + "description": "Inbound", + "value": "Inbound" + }, + { + "description": "Outbound", + "value": "Outbound" + }, + { + "description": "Intraorg", + "value": "Intraorg" + } + ] + } + }, + "deliveryAction": { + "description": "The delivery action of this mail message like Delivered, Blocked, Replaced etc", + "enum": [ + "Unknown", + "DeliveredAsSpam", + "Delivered", + "Blocked", + "Replaced" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": false, + "name": "DeliveryAction", + "values": [ + { + "description": "Unknown", + "value": "Unknown" + }, + { + "description": "DeliveredAsSpam", + "value": "DeliveredAsSpam" + }, + { + "description": "Delivered", + "value": "Delivered" + }, + { + "description": "Blocked", + "value": "Blocked" + }, + { + "description": "Replaced", + "value": "Replaced" + } + ] + } + }, + "deliveryLocation": { + "description": "The delivery location of this mail message like Inbox, JunkFolder etc", + "enum": [ + "Unknown", + "Inbox", + "JunkFolder", + "DeletedFolder", + "Quarantine", + "External", + "Failed", + "Dropped", + "Forwarded" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": false, + "name": "DeliveryLocation", + "values": [ + { + "description": "Unknown", + "value": "Unknown" + }, + { + "description": "Inbox", + "value": "Inbox" + }, + { + "description": "JunkFolder", + "value": "JunkFolder" + }, + { + "description": "DeletedFolder", + "value": "DeletedFolder" + }, + { + "description": "Quarantine", + "value": "Quarantine" + }, + { + "description": "External", + "value": "External" + }, + { + "description": "Failed", + "value": "Failed" + }, + { + "description": "Dropped", + "value": "Dropped" + }, + { + "description": "Forwarded", + "value": "Forwarded" + } + ] + } + } + }, + "type": "object" + }, + "MalwareEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a malware entity.", + "properties": { + "properties": { + "$ref": "#/definitions/MalwareEntityProperties", + "description": "File entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Malware" + }, + "MalwareEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Malware entity property bag.", + "properties": { + "category": { + "description": "The malware category by the vendor, e.g. Trojan", + "readOnly": true, + "type": "string" + }, + "fileEntityIds": { + "description": "List of linked file entity identifiers on which the malware was found", + "items": { + "description": "file entity id", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "malwareName": { + "description": "The malware name by the vendor, e.g. Win32/Toga!rfn", + "readOnly": true, + "type": "string" + }, + "processEntityIds": { + "description": "List of linked process entity identifiers on which the malware was found.", + "items": { + "description": "process entity id", + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "ProcessEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a process entity.", + "properties": { + "properties": { + "$ref": "#/definitions/ProcessEntityProperties", + "description": "Process entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Process" + }, + "ProcessEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Process entity property bag.", + "properties": { + "accountEntityId": { + "description": "The account entity id running the processes.", + "readOnly": true, + "type": "string" + }, + "commandLine": { + "description": "The command line used to create the process", + "readOnly": true, + "type": "string" + }, + "creationTimeUtc": { + "description": "The time when the process started to run", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "elevationToken": { + "description": "The elevation token associated with the process.", + "enum": [ + "Default", + "Full", + "Limited" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": false, + "name": "ElevationToken", + "values": [ + { + "description": "Default elevation token", + "value": "Default" + }, + { + "description": "Full elevation token", + "value": "Full" + }, + { + "description": "Limited elevation token", + "value": "Limited" + } + ] + } + }, + "hostEntityId": { + "description": "The host entity id on which the process was running", + "readOnly": true, + "type": "string" + }, + "hostLogonSessionEntityId": { + "description": "The session entity id in which the process was running", + "readOnly": true, + "type": "string" + }, + "imageFileEntityId": { + "description": "Image file entity id", + "readOnly": true, + "type": "string" + }, + "parentProcessEntityId": { + "description": "The parent process entity id.", + "readOnly": true, + "type": "string" + }, + "processId": { + "description": "The process ID", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RegistryKeyEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a registry key entity.", + "properties": { + "properties": { + "$ref": "#/definitions/RegistryKeyEntityProperties", + "description": "RegistryKey entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "RegistryKey" + }, + "RegistryKeyEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "RegistryKey entity property bag.", + "properties": { + "hive": { + "description": "the hive that holds the registry key.", + "enum": [ + "HKEY_LOCAL_MACHINE", + "HKEY_CLASSES_ROOT", + "HKEY_CURRENT_CONFIG", + "HKEY_USERS", + "HKEY_CURRENT_USER_LOCAL_SETTINGS", + "HKEY_PERFORMANCE_DATA", + "HKEY_PERFORMANCE_NLSTEXT", + "HKEY_PERFORMANCE_TEXT", + "HKEY_A", + "HKEY_CURRENT_USER" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "RegistryHive", + "values": [ + { + "description": "HKEY_LOCAL_MACHINE", + "value": "HKEY_LOCAL_MACHINE" + }, + { + "description": "HKEY_CLASSES_ROOT", + "value": "HKEY_CLASSES_ROOT" + }, + { + "description": "HKEY_CURRENT_CONFIG", + "value": "HKEY_CURRENT_CONFIG" + }, + { + "description": "HKEY_USERS", + "value": "HKEY_USERS" + }, + { + "description": "HKEY_CURRENT_USER_LOCAL_SETTINGS", + "value": "HKEY_CURRENT_USER_LOCAL_SETTINGS" + }, + { + "description": "HKEY_PERFORMANCE_DATA", + "value": "HKEY_PERFORMANCE_DATA" + }, + { + "description": "HKEY_PERFORMANCE_NLSTEXT", + "value": "HKEY_PERFORMANCE_NLSTEXT" + }, + { + "description": "HKEY_PERFORMANCE_TEXT", + "value": "HKEY_PERFORMANCE_TEXT" + }, + { + "description": "HKEY_A", + "value": "HKEY_A" + }, + { + "description": "HKEY_CURRENT_USER", + "value": "HKEY_CURRENT_USER" + } + ] + } + }, + "key": { + "description": "The registry key path.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RegistryValueEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a registry value entity.", + "properties": { + "properties": { + "$ref": "#/definitions/RegistryValueEntityProperties", + "description": "RegistryKey entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "RegistryValue" + }, + "RegistryValueEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "RegistryValue entity property bag.", + "properties": { + "keyEntityId": { + "description": "The registry key entity id.", + "readOnly": true, + "type": "string" + }, + "valueData": { + "description": "String formatted representation of the value data.", + "readOnly": true, + "type": "string" + }, + "valueName": { + "description": "The registry value name.", + "readOnly": true, + "type": "string" + }, + "valueType": { + "description": "Specifies the data types to use when storing values in the registry, or identifies the data type of a value in the registry.", + "enum": [ + "None", + "Unknown", + "String", + "ExpandString", + "Binary", + "DWord", + "MultiString", + "QWord" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "RegistryValueKind", + "values": [ + { + "description": "None", + "value": "None" + }, + { + "description": "Unknown value type", + "value": "Unknown" + }, + { + "description": "String value type", + "value": "String" + }, + { + "description": "ExpandString value type", + "value": "ExpandString" + }, + { + "description": "Binary value type", + "value": "Binary" + }, + { + "description": "DWord value type", + "value": "DWord" + }, + { + "description": "MultiString value type", + "value": "MultiString" + }, + { + "description": "QWord value type", + "value": "QWord" + } + ] + } + } + }, + "type": "object" + }, + "SecurityAlert": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a security alert entity.", + "properties": { + "properties": { + "$ref": "#/definitions/SecurityAlertProperties", + "description": "SecurityAlert entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "SecurityAlert" + }, + "SecurityAlertProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "SecurityAlert entity property bag.", + "properties": { + "alertDisplayName": { + "description": "The display name of the alert.", + "readOnly": true, + "type": "string" + }, + "alertType": { + "description": "The type name of the alert.", + "readOnly": true, + "type": "string" + }, + "compromisedEntity": { + "description": "Display name of the main entity being reported on.", + "readOnly": true, + "type": "string" + }, + "confidenceLevel": { + "description": "The confidence level of this alert.", + "enum": [ + "Unknown", + "Low", + "High" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ConfidenceLevel", + "values": [ + { + "description": "Unknown confidence, the is the default value", + "value": "Unknown" + }, + { + "description": "Low confidence, meaning we have some doubts this is indeed malicious or part of an attack", + "value": "Low" + }, + { + "description": "High confidence that the alert is true positive malicious", + "value": "High" + } + ] + } + }, + "confidenceReasons": { + "description": "The confidence reasons", + "items": { + "description": "confidence reason item", + "properties": { + "reason": { + "description": "The reason's description", + "readOnly": true, + "type": "string" + }, + "reasonType": { + "description": "The type (category) of the reason", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "confidenceScore": { + "description": "The confidence score of the alert.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "confidenceScoreStatus": { + "description": "The confidence score calculation status, i.e. indicating if score calculation is pending for this alert, not applicable or final.", + "enum": [ + "NotApplicable", + "InProcess", + "NotFinal", + "Final" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ConfidenceScoreStatus", + "values": [ + { + "description": "Score will not be calculated for this alert as it is not supported by virtual analyst", + "value": "NotApplicable" + }, + { + "description": "No score was set yet and calculation is in progress", + "value": "InProcess" + }, + { + "description": "Score is calculated and shown as part of the alert, but may be updated again at a later time following the processing of additional data", + "value": "NotFinal" + }, + { + "description": "Final score was calculated and available", + "value": "Final" + } + ] + } + }, + "description": { + "description": "Alert description.", + "readOnly": true, + "type": "string" + }, + "endTimeUtc": { + "description": "The impact end time of the alert (the time of the last event contributing to the alert).", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "intent": { + "description": "Holds the alert intent stage(s) mapping for this alert.", + "enum": [ + "Unknown", + "Probing", + "Exploitation", + "Persistence", + "PrivilegeEscalation", + "DefenseEvasion", + "CredentialAccess", + "Discovery", + "LateralMovement", + "Execution", + "Collection", + "Exfiltration", + "CommandAndControl", + "Impact" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "KillChainIntent", + "values": [ + { + "description": "The default value.", + "value": "Unknown" + }, + { + "description": "Probing could be an attempt to access a certain resource regardless of a malicious intent or a failed attempt to gain access to a target system to gather information prior to exploitation. This step is usually detected as an attempt originating from outside the network in attempt to scan the target system and find a way in.", + "value": "Probing" + }, + { + "description": "Exploitation is the stage where an attacker manage to get foothold on the attacked resource. This stage is applicable not only for compute hosts, but also for resources such as user accounts, certificates etc. Adversaries will often be able to control the resource after this stage.", + "value": "Exploitation" + }, + { + "description": "Persistence is any access, action, or configuration change to a system that gives an adversary a persistent presence on that system. Adversaries will often need to maintain access to systems through interruptions such as system restarts, loss of credentials, or other failures that would require a remote access tool to restart or alternate backdoor for them to regain access.", + "value": "Persistence" + }, + { + "description": "Privilege escalation is the result of actions that allow an adversary to obtain a higher level of permissions on a system or network. Certain tools or actions require a higher level of privilege to work and are likely necessary at many points throughout an operation. User accounts with permissions to access specific systems or perform specific functions necessary for adversaries to achieve their objective may also be considered an escalation of privilege.", + "value": "PrivilegeEscalation" + }, + { + "description": "Defense evasion consists of techniques an adversary may use to evade detection or avoid other defenses. Sometimes these actions are the same as or variations of techniques in other categories that have the added benefit of subverting a particular defense or mitigation. ", + "value": "DefenseEvasion" + }, + { + "description": "Credential access represents techniques resulting in access to or control over system, domain, or service credentials that are used within an enterprise environment. Adversaries will likely attempt to obtain legitimate credentials from users or administrator accounts (local system administrator or domain users with administrator access) to use within the network. With sufficient access within a network, an adversary can create accounts for later use within the environment.", + "value": "CredentialAccess" + }, + { + "description": "Discovery consists of techniques that allow the adversary to gain knowledge about the system and internal network. When adversaries gain access to a new system, they must navigate themselves to what they now have control of and what benefits operating from that system give to their current objective or overall goals during the intrusion. The operating system provides many native tools that aid in this post-compromise information-gathering phase.", + "value": "Discovery" + }, + { + "description": "Lateral movement consists of techniques that enable an adversary to access and control remote systems on a network and could, but does not necessarily, include execution of tools on remote systems. The lateral movement techniques could allow an adversary to gather information from a system without needing additional tools, such as a remote access tool. An adversary can use lateral movement for many purposes, including remote Execution of tools, pivoting to additional systems, access to specific information or files, access to additional credentials, or to cause an effect.", + "value": "LateralMovement" + }, + { + "description": "The execution tactic represents techniques that result in execution of adversary-controlled code on a local or remote system. This tactic is often used in conjunction with lateral movement to expand access to remote systems on a network.", + "value": "Execution" + }, + { + "description": "Collection consists of techniques used to identify and gather information, such as sensitive files, from a target network prior to exfiltration. This category also covers locations on a system or network where the adversary may look for information to exfiltrate.", + "value": "Collection" + }, + { + "description": "Exfiltration refers to techniques and attributes that result or aid in the adversary removing files and information from a target network. This category also covers locations on a system or network where the adversary may look for information to exfiltrate.", + "value": "Exfiltration" + }, + { + "description": "The command and control tactic represents how adversaries communicate with systems under their control within a target network.", + "value": "CommandAndControl" + }, + { + "description": "The impact intent primary objective is to directly reduce the availability or integrity of a system, service, or network; including manipulation of data to impact a business or operational process. This would often refer to techniques such as ransom-ware, defacement, data manipulation and others.", + "value": "Impact" + } + ] + } + }, + "providerAlertId": { + "description": "The identifier of the alert inside the product which generated the alert.", + "readOnly": true, + "type": "string" + }, + "processingEndTime": { + "description": "The time the alert was made available for consumption.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "productComponentName": { + "description": "The name of a component inside the product which generated the alert.", + "readOnly": true, + "type": "string" + }, + "productName": { + "description": "The name of the product which published this alert.", + "readOnly": true, + "type": "string" + }, + "productVersion": { + "description": "The version of the product generating the alert.", + "readOnly": true, + "type": "string" + }, + "remediationSteps": { + "description": "Manual action items to take to remediate the alert.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "severity": { + "$ref": "AlertTypes.json#/definitions/AlertSeverityEnum", + "description": "The severity of the alert", + "type": "string" + }, + "startTimeUtc": { + "description": "The impact start time of the alert (the time of the first event contributing to the alert).", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "The lifecycle status of the alert.", + "enum": [ + "Unknown", + "New", + "Resolved", + "Dismissed", + "InProgress" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "AlertStatus", + "values": [ + { + "description": "Unknown value", + "value": "Unknown" + }, + { + "description": "New alert", + "value": "New" + }, + { + "description": "Alert closed after handling", + "value": "Resolved" + }, + { + "description": "Alert dismissed as false positive", + "value": "Dismissed" + }, + { + "description": "Alert is being handled", + "value": "InProgress" + } + ] + } + }, + "systemAlertId": { + "description": "Holds the product identifier of the alert for the product.", + "readOnly": true, + "type": "string" + }, + "tactics": { + "description": "The tactics of the alert", + "items": { + "$ref": "AlertTypes.json#/definitions/AttackTactic" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + }, + "timeGenerated": { + "description": "The time the alert was generated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "vendorName": { + "description": "The name of the vendor that raise the alert.", + "readOnly": true, + "type": "string" + }, + "alertLink": { + "description": "The uri link of the alert.", + "readOnly": true, + "type": "string" + }, + "resourceIdentifiers": { + "description": "The list of resource identifiers of the alert.", + "items": { + "type": "object" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + }, + "SecurityGroupEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a security group entity.", + "properties": { + "properties": { + "$ref": "#/definitions/SecurityGroupEntityProperties", + "description": "SecurityGroup entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "SecurityGroup" + }, + "SecurityGroupEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "SecurityGroup entity property bag.", + "properties": { + "distinguishedName": { + "description": "The group distinguished name", + "readOnly": true, + "type": "string" + }, + "objectGuid": { + "description": "A single-value attribute that is the unique identifier for the object, assigned by active directory.", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "sid": { + "description": "The SID attribute is a single-value attribute that specifies the security identifier (SID) of the group", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SubmissionMailEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a submission mail entity.", + "properties": { + "properties": { + "$ref": "#/definitions/SubmissionMailEntityProperties", + "description": "Submission mail entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "SubmissionMail" + }, + "SubmissionMailEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Submission mail entity property bag.", + "properties": { + "networkMessageId": { + "description": "The network message id of email to which submission belongs", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "submissionId": { + "description": "The submission id", + "format": "uuid", + "readOnly": true, + "type": "string" + }, + "submitter": { + "description": "The submitter", + "readOnly": true, + "type": "string" + }, + "submissionDate": { + "description": "The submission date", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "timestamp": { + "description": "The Time stamp when the message is received (Mail)", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "recipient": { + "description": "The recipient of the mail", + "readOnly": true, + "type": "string" + }, + "sender": { + "description": "The sender of the mail", + "readOnly": true, + "type": "string" + }, + "senderIp": { + "description": "The sender's IP", + "readOnly": true, + "type": "string" + }, + "subject": { + "description": "The subject of submission mail", + "readOnly": true, + "type": "string" + }, + "reportType": { + "description": "The submission type for the given instance. This maps to Junk, Phish, Malware or NotJunk.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "UrlEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents a url entity.", + "properties": { + "properties": { + "$ref": "#/definitions/UrlEntityProperties", + "description": "Url entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Url" + }, + "UrlEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Url entity property bag.", + "properties": { + "url": { + "description": "A full URL the entity points to", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NicEntity": { + "allOf": [ + { + "$ref": "#/definitions/Entity" + } + ], + "description": "Represents an network interface entity.", + "properties": { + "properties": { + "$ref": "#/definitions/NicEntityProperties", + "description": "Network interface entity properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Nic" + }, + "NicEntityProperties": { + "allOf": [ + { + "$ref": "#/definitions/EntityCommonProperties" + } + ], + "description": "Nic entity property bag.", + "properties": { + "macAddress": { + "description": "The MAC address of this network interface", + "readOnly": true, + "type": "string" + }, + "ipAddressEntityId": { + "description": "The IP entity id of this network interface", + "readOnly": true, + "type": "string" + }, + "vlans": { + "description": "A list of VLANs of the network interface entity.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array", + "x-ms-identifiers": [] + } + }, + "type": "object" + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/IncidentTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/IncidentTypes.json new file mode 100644 index 000000000000..38bcbb853ce2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/IncidentTypes.json @@ -0,0 +1,246 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common Incident types" + }, + "paths": {}, + "definitions": { + "IncidentClassificationEnum": { + "description": "The reason the incident was closed", + "enum": [ + "Undetermined", + "TruePositive", + "BenignPositive", + "FalsePositive" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IncidentClassification", + "values": [ + { + "description": "Incident classification was undetermined", + "value": "Undetermined" + }, + { + "description": "Incident was true positive", + "value": "TruePositive" + }, + { + "description": "Incident was benign positive", + "value": "BenignPositive" + }, + { + "description": "Incident was false positive", + "value": "FalsePositive" + } + ] + } + }, + "IncidentClassificationReasonEnum": { + "description": "The classification reason the incident was closed with", + "enum": [ + "SuspiciousActivity", + "SuspiciousButExpected", + "IncorrectAlertLogic", + "InaccurateData" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IncidentClassificationReason", + "values": [ + { + "description": "Classification reason was suspicious activity", + "value": "SuspiciousActivity" + }, + { + "description": "Classification reason was suspicious but expected", + "value": "SuspiciousButExpected" + }, + { + "description": "Classification reason was incorrect alert logic", + "value": "IncorrectAlertLogic" + }, + { + "description": "Classification reason was inaccurate data", + "value": "InaccurateData" + } + ] + } + }, + "IncidentLabel": { + "description": "Represents an incident label", + "properties": { + "labelName": { + "description": "The name of the label", + "type": "string" + }, + "labelType": { + "$ref": "#/definitions/IncidentLabelType" + } + }, + "required": [ + "labelName" + ], + "type": "object" + }, + "IncidentLabelType": { + "description": "The type of the label", + "enum": [ + "User", + "AutoAssigned" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "IncidentLabelType", + "values": [ + { + "description": "Label manually created by a user", + "value": "User" + }, + { + "description": "Label automatically created by the system", + "value": "AutoAssigned" + } + ] + } + }, + "IncidentSeverityEnum": { + "description": "The severity of the incident", + "enum": [ + "High", + "Medium", + "Low", + "Informational" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IncidentSeverity", + "values": [ + { + "description": "High severity", + "value": "High" + }, + { + "description": "Medium severity", + "value": "Medium" + }, + { + "description": "Low severity", + "value": "Low" + }, + { + "description": "Informational severity", + "value": "Informational" + } + ] + } + }, + "IncidentStatusEnum": { + "description": "The status of the incident", + "enum": [ + "New", + "Active", + "Closed" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IncidentStatus", + "values": [ + { + "description": "An active incident which isn't being handled currently", + "value": "New" + }, + { + "description": "An active incident which is being handled", + "value": "Active" + }, + { + "description": "A non-active incident", + "value": "Closed" + } + ] + } + }, + "IncidentOwnerInfo": { + "description": "Information on the user an incident is assigned to", + "properties": { + "email": { + "description": "The email of the user the incident is assigned to.", + "type": "string" + }, + "assignedTo": { + "description": "The name of the user the incident is assigned to.", + "type": "string" + }, + "objectId": { + "description": "The object id of the user the incident is assigned to.", + "format": "uuid", + "type": "string" + }, + "userPrincipalName": { + "description": "The user principal name of the user the incident is assigned to.", + "type": "string" + }, + "ownerType": { + "description": "The type of the owner the incident is assigned to.", + "type": "string", + "enum": [ + "Unknown", + "User", + "Group" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "OwnerType", + "values": [ + { + "description": "The incident owner type is unknown", + "value": "Unknown" + }, + { + "description": "The incident owner type is an AAD user", + "value": "User" + }, + { + "description": "The incident owner type is an AAD group", + "value": "Group" + } + ] + } + } + }, + "type": "object" + }, + "IncidentInfo": { + "description": "Describes related incident information for the bookmark", + "properties": { + "incidentId": { + "description": "Incident Id", + "type": "string" + }, + "severity": { + "description": "The severity of the incident", + "type": "string", + "$ref": "#/definitions/IncidentSeverityEnum" + }, + "title": { + "description": "The title of the incident", + "type": "string" + }, + "relationName": { + "description": "Relation Name", + "type": "string" + } + }, + "type": "object" + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/RelationTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/RelationTypes.json new file mode 100644 index 000000000000..86e7ac46b8a6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/RelationTypes.json @@ -0,0 +1,98 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common Relation types" + }, + "paths": {}, + "definitions": { + "RelationList": { + "description": "List of relations.", + "properties": { + "nextLink": { + "readOnly": true, + "description": "URL to fetch the next set of relations.", + "type": "string" + }, + "value": { + "description": "Array of relations.", + "type": "array", + "items": { + "$ref": "#/definitions/Relation" + } + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "Relation": { + "type": "object", + "description": "Represents a relation between two resources", + "allOf": [ + { + "$ref": "../../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/RelationProperties", + "description": "Relation properties", + "x-ms-client-flatten": true + } + } + }, + "RelationProperties": { + "description": "Relation property bag.", + "properties": { + "relatedResourceId": { + "description": "The resource ID of the related resource", + "type": "string" + }, + "relatedResourceName": { + "description": "The name of the related resource", + "readOnly": true, + "type": "string" + }, + "relatedResourceType": { + "description": "The resource type of the related resource", + "readOnly": true, + "type": "string" + }, + "relatedResourceKind": { + "description": "The resource kind of the related resource", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "relatedResourceId" + ], + "type": "object" + } + }, + "parameters": { + "RelationName": { + "name": "relationName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,63}$", + "minLength": 3, + "maxLength": 63, + "description": "Relation Name", + "x-ms-parameter-location": "method" + }, + "Relation": { + "name": "relation", + "in": "body", + "description": "The relation model", + "required": true, + "schema": { + "$ref": "#/definitions/Relation" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ThreatIntelligenceTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ThreatIntelligenceTypes.json new file mode 100644 index 000000000000..b4177b523799 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/common/ThreatIntelligenceTypes.json @@ -0,0 +1,48 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-10-01-preview", + "title": "Common Relation types" + }, + "paths": {}, + "definitions": { + "ThreatIntelligence": { + "description": "ThreatIntelligence property bag.", + "properties": { + "confidence": { + "description": "Confidence (must be between 0 and 1)", + "format": "double", + "readOnly": true, + "type": "number" + }, + "providerName": { + "description": "Name of the provider from whom this Threat Intelligence information was received", + "readOnly": true, + "type": "string" + }, + "reportLink": { + "description": "Report link", + "readOnly": true, + "type": "string" + }, + "threatDescription": { + "description": "Threat description (free text)", + "readOnly": true, + "type": "string" + }, + "threatName": { + "description": "Threat name (e.g. \"Jedobot malware\")", + "readOnly": true, + "type": "string" + }, + "threatType": { + "description": "Threat type (e.g. \"Botnet\")", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectorDefinitions.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectorDefinitions.json new file mode 100644 index 000000000000..c6d5089e5b55 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectorDefinitions.json @@ -0,0 +1,706 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions": { + "get": { + "x-ms-examples": { + "Get all data connector definitions.": { + "$ref": "./examples/dataConnectorDefinitions/GetDataConnectorDefinitions.json" + } + }, + "tags": [ + "ConnectorDefinitions" + ], + "description": "Gets all data connector definitions.", + "operationId": "DataConnectorDefinitions_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DataConnectorDefinitionArmCollectionWrapper" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/{dataConnectorDefinitionName}": { + "get": { + "x-ms-examples": { + "Get customize data connector definition": { + "$ref": "./examples/dataConnectorDefinitions/GetCustomizableDataConnectorDefinitionById.json" + } + }, + "tags": [ + "ConnectorDefinitions" + ], + "description": "Gets a data connector definition.", + "operationId": "DataConnectorDefinitions_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/dataConnectorDefinitionName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DataConnectorDefinition" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-examples": { + "Create data connector definition": { + "$ref": "./examples/dataConnectorDefinitions/CreateCustomizableDataConnectorDefinition.json" + } + }, + "tags": [ + "ConnectorDefinitions" + ], + "description": "Creates or updates the data connector definition.", + "operationId": "DataConnectorDefinitions_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/dataConnectorDefinitionName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "connectorDefinitionInput", + "required": true, + "schema": { + "$ref": "#/definitions/DataConnectorDefinition" + }, + "description": "The data connector definition", + "x-ms-parameter-location": "method" + } + ], + "responses": { + "200": { + "description": "Updated", + "schema": { + "$ref": "#/definitions/DataConnectorDefinition" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/DataConnectorDefinition" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete data connector definition": { + "$ref": "./examples/dataConnectorDefinitions/DeleteDataConnectorDefinitionById.json" + } + }, + "tags": [ + "ConnectorDefinitions" + ], + "description": "Delete the data connector definition.", + "operationId": "DataConnectorDefinitions_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/dataConnectorDefinitionName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "ConnectorDefinitionsAvailability": { + "description": "The exposure status of the connector to the customers.", + "type": "object", + "properties": { + "status": { + "$ref": "#/definitions/AvailabilityStatus" + }, + "isPreview": { + "description": "Gets or sets a value indicating whether the connector is preview.", + "type": "boolean" + } + } + }, + "AvailabilityStatus": { + "description": "The exposure status of the connector to the customers. Available values are 0-4 (0=None, 1=Available, 2=FeatureFlag, 3=Internal).", + "type": "integer", + "format": "int32" + }, + "ConnectivityCriterion": { + "description": "The criteria by which we determine whether the connector is connected or not.\r\nFor Example, use a KQL query to check if the expected data type is flowing).", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "description": "Gets or sets the type of connectivity.", + "type": "string" + }, + "value": { + "description": "Gets or sets the queries for checking connectivity.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ConnectorDataType": { + "description": "The data type which is created by the connector,\r\nincluding a query indicated when was the last time that data type was received in the workspace.", + "required": [ + "lastDataReceivedQuery", + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Gets or sets the name of the data type to show in the graph.", + "type": "string" + }, + "lastDataReceivedQuery": { + "description": "Gets or sets the query to indicate when relevant data was last received in the workspace.", + "type": "string" + } + } + }, + "DataConnectorDefinition": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "required": [ + "kind" + ], + "description": "An Azure resource, which encapsulate the entire info requires to display a data connector page in Azure portal,\r\nand the info required to define data connections.", + "type": "object", + "properties": { + "kind": { + "$ref": "#/definitions/DataConnectorDefinitionKind", + "description": "The data connector kind", + "type": "string" + } + }, + "discriminator": "kind" + }, + "DataConnectorDefinitionKind": { + "description": "The kind of the data connector definitions", + "enum": [ + "Customizable" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DataConnectorDefinitionKind", + "values": [ + { + "value": "Customizable" + } + ] + } + }, + "DataConnectorDefinitionArmCollectionWrapper": { + "type": "object", + "description": "Encapsulate the data connector definition object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DataConnectorDefinition" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "CustomizableConnectorDefinition": { + "description": "Connector definition for kind 'Customizable'.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDefinition" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/CustomizableConnectorDefinitionProperties", + "description": "Customizable properties.", + "x-ms-client-flatten": true + } + }, + "x-ms-discriminator-value": "Customizable" + }, + "CustomizableConnectorDefinitionProperties": { + "description": "The UiConfig for 'Customizable' connector definition kind.", + "type": "object", + "required": [ + "connectorUiConfig" + ], + "properties": { + "createdTimeUtc": { + "format": "date-time", + "description": "Gets or sets the connector definition created date in UTC format.", + "type": "string" + }, + "lastModifiedUtc": { + "format": "date-time", + "description": "Gets or sets the connector definition last modified date in UTC format.", + "type": "string" + }, + "connectorUiConfig": { + "$ref": "#/definitions/CustomizableConnectorUiConfig" + }, + "connectionsConfig": { + "$ref": "#/definitions/CustomizableConnectionsConfig" + } + } + }, + "CustomizableConnectionsConfig": { + "description": "The UiConfig for 'Customizable' connector definition kind.", + "required": [ + "templateSpecVersion", + "templateSpecName" + ], + "type": "object", + "properties": { + "templateSpecName": { + "description": "Gets or sets the template name. The template includes ARM templates that can be created by the connector, usually it will be the dataConnectors ARM templates.", + "type": "string" + }, + "templateSpecVersion": { + "description": "Gets or sets the template version.", + "type": "string" + } + } + }, + "CustomizableConnectorUiConfig": { + "description": "The UiConfig for 'Customizable' connector definition kind.", + "required": [ + "dataTypes", + "descriptionMarkdown", + "graphQueries", + "instructionSteps", + "permissions", + "publisher", + "title", + "connectivityCriteria" + ], + "type": "object", + "properties": { + "id": { + "description": "Gets or sets custom connector id. optional field.", + "type": "string" + }, + "title": { + "description": "Gets or sets the connector blade title.", + "type": "string" + }, + "publisher": { + "description": "Gets or sets the connector publisher name.", + "type": "string" + }, + "descriptionMarkdown": { + "description": "Gets or sets the connector description in markdown format.", + "type": "string" + }, + "graphQueries": { + "description": "Gets or sets the graph queries to show the current data volume over time.", + "type": "array", + "items": { + "$ref": "#/definitions/GraphQuery" + }, + "x-ms-identifiers": [] + }, + "dataTypes": { + "description": "Gets or sets the data types to check for last data received.", + "type": "array", + "items": { + "$ref": "#/definitions/ConnectorDataType" + }, + "x-ms-identifiers": [] + }, + "connectivityCriteria": { + "description": "Gets or sets the way the connector checks whether the connector is connected.", + "type": "array", + "items": { + "$ref": "#/definitions/ConnectivityCriterion" + }, + "x-ms-identifiers": [] + }, + "availability": { + "$ref": "#/definitions/ConnectorDefinitionsAvailability" + }, + "permissions": { + "$ref": "#/definitions/ConnectorDefinitionsPermissions" + }, + "instructionSteps": { + "description": "Gets or sets the instruction steps to enable the connector.", + "type": "array", + "items": { + "$ref": "#/definitions/InstructionStep" + }, + "x-ms-identifiers": [] + }, + "logo": { + "description": "Gets or sets the connector logo to be used when displaying the connector within Azure Sentinel's connector's gallery.\r\nThe logo value should be in SVG format.", + "type": "string" + }, + "isConnectivityCriteriasMatchSome": { + "description": "Gets or sets a value indicating whether to use 'OR'(SOME) or 'AND' between ConnectivityCriteria items.", + "type": "boolean" + } + } + }, + "CustomPermissionDetails": { + "description": "The Custom permissions required for the connector.", + "required": [ + "description", + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Gets or sets the custom permissions name.", + "type": "string" + }, + "description": { + "description": "Gets or sets the custom permissions description.", + "type": "string" + } + } + }, + "GraphQuery": { + "description": "The graph query to show the volume of data arriving into the workspace over time.", + "required": [ + "baseQuery", + "legend", + "metricName" + ], + "type": "object", + "properties": { + "metricName": { + "description": "Gets or sets the metric name that the query is checking. For example: 'Total data receive'.", + "type": "string" + }, + "legend": { + "description": "Gets or sets the legend for the graph.", + "type": "string" + }, + "baseQuery": { + "description": "Gets or sets the base query for the graph.\r\nThe base query is wrapped by Sentinel UI infra with a KQL query, that measures the volume over time.", + "type": "string" + } + } + }, + "InstructionStep": { + "description": "Instruction steps to enable the connector.", + "type": "object", + "properties": { + "title": { + "description": "Gets or sets the instruction step title.", + "type": "string" + }, + "description": { + "description": "Gets or sets the instruction step description.", + "type": "string" + }, + "instructions": { + "description": "Gets or sets the instruction step details.", + "type": "array", + "items": { + "$ref": "#/definitions/InstructionStepDetails" + }, + "x-ms-identifiers": [] + }, + "innerSteps": { + "description": "Gets or sets the inner instruction steps details.\r\nFor Example: instruction step 1 might contain inner instruction steps: [instruction step 1.1, instruction step 1.2].", + "type": "array", + "items": { + "$ref": "#/definitions/InstructionStep" + }, + "x-ms-identifiers": [] + } + } + }, + "InstructionStepDetails": { + "description": "Instruction step details, to be displayed in the Instructions steps section in the connector's page in Sentinel Portal.", + "required": [ + "parameters", + "type" + ], + "type": "object", + "properties": { + "parameters": { + "description": "Gets or sets the instruction type parameters settings.", + "type": "object" + }, + "type": { + "description": "Gets or sets the instruction type name.", + "type": "string" + } + } + }, + "ConnectorDefinitionsPermissions": { + "description": "The required Permissions for the connector.", + "type": "object", + "properties": { + "tenant": { + "description": "Gets or sets the required tenant permissions for the connector.", + "type": "array", + "items": { + "type": "string" + } + }, + "licenses": { + "description": "Gets or sets the required licenses for the user to create connections.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourceProvider": { + "description": "Gets or sets the resource provider permissions required for the user to create connections.", + "type": "array", + "items": { + "$ref": "#/definitions/ConnectorDefinitionsResourceProvider" + }, + "x-ms-identifiers": [] + }, + "customs": { + "description": "Gets or sets the customs permissions required for the user to create connections.", + "type": "array", + "items": { + "$ref": "#/definitions/CustomPermissionDetails" + }, + "x-ms-identifiers": [] + } + } + }, + "ProviderPermissionsScope": { + "description": "The scope on which the user should have permissions, in order to be able to create connections.", + "enum": [ + "Subscription", + "ResourceGroup", + "Workspace" + ], + "type": "string", + "example": "Subscription", + "x-ms-enum": { + "name": "ProviderPermissionsScope", + "modelAsString": true, + "values": [ + { + "value": "Subscription" + }, + { + "value": "ResourceGroup" + }, + { + "value": "Workspace" + } + ] + } + }, + "ConnectorDefinitionsResourceProvider": { + "description": "The resource provider details include the required permissions for the user to create connections.\r\nThe user should have the required permissions(Read\\Write, ..) in the specified scope ProviderPermissionsScope against the specified resource provider.", + "required": [ + "permissionsDisplayText", + "provider", + "providerDisplayName", + "requiredPermissions", + "scope" + ], + "type": "object", + "properties": { + "provider": { + "description": "Gets or sets the provider name.", + "type": "string" + }, + "permissionsDisplayText": { + "description": "Gets or sets the permissions description text.", + "type": "string" + }, + "providerDisplayName": { + "description": "Gets or sets the permissions provider display name.", + "type": "string" + }, + "scope": { + "$ref": "#/definitions/ProviderPermissionsScope" + }, + "requiredPermissions": { + "$ref": "#/definitions/ResourceProviderRequiredPermissions" + } + } + }, + "ResourceProviderRequiredPermissions": { + "description": "Required permissions for the connector resource provider that define in ResourceProviders.\r\nFor more information about the permissions see here.", + "type": "object", + "properties": { + "read": { + "description": "Gets or sets a value indicating whether the permission is read action (GET).", + "type": "boolean" + }, + "write": { + "description": "Gets or sets a value indicating whether the permission is write action (PUT or PATCH).", + "type": "boolean" + }, + "delete": { + "description": "Gets or sets a value indicating whether the permission is delete action (DELETE).", + "type": "boolean" + }, + "action": { + "description": "Gets or sets a value indicating whether the permission is custom actions (POST).", + "type": "boolean" + } + } + } + }, + "parameters": { + "dataConnectorDefinitionName": { + "in": "path", + "name": "dataConnectorDefinitionName", + "description": "The data connector definition name.", + "required": true, + "type": "string", + "pattern": "^[a-z0-9A-Z-_]*$", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectors.json new file mode 100644 index 000000000000..af47ed6ae9cc --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectors.json @@ -0,0 +1,4175 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectors": { + "get": { + "x-ms-examples": { + "Get all data connectors.": { + "$ref": "./examples/dataConnectors/GetDataConnectors.json" + } + }, + "tags": [ + "Data Connectors" + ], + "description": "Gets all data connectors.", + "operationId": "DataConnectors_List", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed", + "schema": { + "$ref": "#/definitions/DataConnectorList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectors/{dataConnectorId}": { + "get": { + "x-ms-examples": { + "Get an Office365 data connector.": { + "$ref": "./examples/dataConnectors/GetOfficeDataConnetorById.json" + }, + "Get a TI data connector": { + "$ref": "./examples/dataConnectors/GetThreatIntelligenceById.json" + }, + "Get a TI Taxii data connector.": { + "$ref": "./examples/dataConnectors/GetThreatIntelligenceTaxiiById.json" + }, + "Get a MCAS data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftCloudAppSecurityById.json" + }, + "Get a ASC data connector": { + "$ref": "./examples/dataConnectors/GetAzureSecurityCenterById.json" + }, + "Get an AADIP (Azure Active Directory Identity Protection) data connector": { + "$ref": "./examples/dataConnectors/GetAzureActiveDirectoryById.json" + }, + "Get an AwsCloudTrail data connector": { + "$ref": "./examples/dataConnectors/GetAmazonWebServicesCloudTrailById.json" + }, + "Get an Aws S3 data connector": { + "$ref": "./examples/dataConnectors/GetAmazonWebServicesS3ById.json" + }, + "Get an AATP data connector": { + "$ref": "./examples/dataConnectors/GetAzureAdvancedThreatProtectionById.json" + }, + "Get a MDATP data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftDefenderAdvancedThreatProtectionById.json" + }, + "Get an Office ATP data connector": { + "$ref": "./examples/dataConnectors/GetOffice365AdvancedThreatProtectionById.json" + }, + "Get an Office IRM data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftInsiderRiskManagementById.json" + }, + "Get an Office365 Project data connector": { + "$ref": "./examples/dataConnectors/GetOffice365ProjectDataConnetorById.json" + }, + "Get a MicrosoftPurviewInformationProtection data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftPurviewInformationProtectionDataConnetorById.json" + }, + "Get an Office365 PowerBI data connector": { + "$ref": "./examples/dataConnectors/GetOfficePowerBIDataConnetorById.json" + }, + "Get a Dynamics365 data connector": { + "$ref": "./examples/dataConnectors/GetDynamics365DataConnectorById.json" + }, + "Get a MicrosoftThreatProtection data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftThreatProtectionById.json" + }, + "Get a MicrosoftThreatIntelligence data connector": { + "$ref": "./examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json" + }, + "Get a GenericUI data connector": { + "$ref": "./examples/dataConnectors/GetGenericUI.json" + }, + "Get a APIPolling data connector": { + "$ref": "./examples/dataConnectors/GetAPIPolling.json" + }, + "Get a IoT data connector": { + "$ref": "./examples/dataConnectors/GetIoTById.json" + }, + "Get a GCP data connector": { + "$ref": "./examples/dataConnectors/GetGoogleCloudPlatformById.json" + }, + "Get a RestApiPoller data connector": { + "$ref": "./examples/dataConnectors/GetRestApiPollerById.json" + }, + "Get a PurviewAudit data connector": { + "$ref": "./examples/dataConnectors/GetPurviewAuditDataConnectorById.json" + } + }, + "tags": [ + "Data Connectors" + ], + "description": "Gets a data connector.", + "operationId": "DataConnectors_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorId" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed", + "schema": { + "$ref": "#/definitions/DataConnector" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "put": { + "x-ms-azure-resource": true, + "x-ms-examples": { + "Creates or updates an Office365 data connector": { + "$ref": "./examples/dataConnectors/CreateOfficeDataConnetor.json" + }, + "Creates or updates an Office365 Project data connector": { + "$ref": "./examples/dataConnectors/CreateOffice365ProjectDataConnetor.json" + }, + "Creates or updates an MicrosoftPurviewInformationProtection data connector": { + "$ref": "./examples/dataConnectors/CreateMicrosoftPurviewInformationProtectionDataConnetor.json" + }, + "Creates or updates a Microsoft Threat Intelligence data connector.": { + "$ref": "./examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json" + }, + "Creates or updates an Office PowerBI data connector": { + "$ref": "./examples/dataConnectors/CreateOfficePowerBIDataConnector.json" + }, + "Creates or updates a Threat Intelligence Taxii data connector.": { + "$ref": "./examples/dataConnectors/CreateThreatIntelligenceTaxiiDataConnector.json" + }, + "Creates or updates an Threat Intelligence Platform data connector": { + "$ref": "./examples/dataConnectors/CreateThreatIntelligenceDataConnector.json" + }, + "Creates or updates a Dynamics365 data connector.": { + "$ref": "./examples/dataConnectors/CreateDynamics365DataConnetor.json" + }, + "Creates or updates a GenericUI data connector": { + "$ref": "./examples/dataConnectors/CreateGenericUI.json" + }, + "Creates or updates a APIPolling data connector": { + "$ref": "./examples/dataConnectors/CreateAPIPolling.json" + }, + "Creates or updates a MicrosoftThreatProtection data connector": { + "$ref": "./examples/dataConnectors/CreateMicrosoftThreatProtectionDataConnetor.json" + }, + "Creates or updates a GCP data connector": { + "$ref": "./examples/dataConnectors/CreateGoogleCloudPlatform.json" + }, + "Creates or updates a PurviewAudit data connector": { + "$ref": "./examples/dataConnectors/CreatePurviewAuditDataConnector.json" + } + }, + "tags": [ + "Data Connectors" + ], + "description": "Creates or updates the data connector.", + "operationId": "DataConnectors_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorId" + }, + { + "$ref": "#/parameters/DataConnector" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed", + "schema": { + "$ref": "#/definitions/DataConnector" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/DataConnector" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "x-ms-examples": { + "Delete an Office365 data connector": { + "$ref": "./examples/dataConnectors/DeleteOfficeDataConnetor.json" + }, + "Delete an Office365 Project data connector": { + "$ref": "./examples/dataConnectors/DeleteOffice365ProjectDataConnetor.json" + }, + "Delete an MicrosoftPurviewInformationProtection data connector": { + "$ref": "./examples/dataConnectors/DeleteMicrosoftPurviewInformationProtectionDataConnetor.json" + }, + "Delete an MicrosoftThreatIntelligence data connector": { + "$ref": "./examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json" + }, + "Delete an Office PowerBI data connector": { + "$ref": "./examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json" + }, + "Delete a GenericUI data connector": { + "$ref": "./examples/dataConnectors/DeleteGenericUI.json" + }, + "Delete a APIPolling data connector": { + "$ref": "./examples/dataConnectors/DeleteAPIPolling.json" + }, + "Delete a GCP data connector": { + "$ref": "./examples/dataConnectors/DeleteGoogleCloudPlatform.json" + }, + "Delete a PurviewAudit data connector": { + "$ref": "./examples/dataConnectors/DeletePurviewAuditDataConnector.json" + } + }, + "tags": [ + "Data Connectors" + ], + "description": "Delete the data connector.", + "operationId": "DataConnectors_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorId" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectors/{dataConnectorId}/connect": { + "post": { + "x-ms-examples": { + "Connect an APIPolling data connector": { + "$ref": "./examples/dataConnectors/ConnectAPIPolling.json" + }, + "Connect an APIPolling V2 logs data connector": { + "$ref": "./examples/dataConnectors/ConnectAPIPollingV2Logs.json" + } + }, + "tags": [ + "Data Connectors Connect" + ], + "description": "Connects a data connector.", + "operationId": "DataConnectors_Connect", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorId" + }, + { + "$ref": "#/parameters/DataConnectorConnectBody" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectors/{dataConnectorId}/disconnect": { + "post": { + "x-ms-examples": { + "Disconnect an APIPolling data connector": { + "$ref": "./examples/dataConnectors/DisconnectAPIPolling.json" + } + }, + "tags": [ + "Data Connectors Disconnect" + ], + "description": "Disconnect a data connector.", + "operationId": "DataConnectors_Disconnect", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorId" + } + ], + "responses": { + "200": { + "description": "OK, Operation successfully completed" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/dataConnectorsCheckRequirements": { + "post": { + "x-ms-examples": { + "Check requirements for TI.": { + "$ref": "./examples/dataConnectors/CheckRequirementsThreatIntelligence.json" + }, + "Check requirements for TI Taxii.": { + "$ref": "./examples/dataConnectors/CheckRequirementsThreatIntelligenceTaxii.json" + }, + "Check requirements for AADIP (Azure Active Directory Identity Protection).": { + "$ref": "./examples/dataConnectors/CheckRequirementsAzureActiveDirectory.json" + }, + "Check requirements for AADIP (Azure Active Directory Identity Protection) - no license.": { + "$ref": "./examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoLicense.json" + }, + "Check requirements for AADIP (Azure Active Directory Identity Protection) - no authorization.": { + "$ref": "./examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoAuthorization.json" + }, + "Check requirements for ASC.": { + "$ref": "./examples/dataConnectors/CheckRequirementsAzureSecurityCenter.json" + }, + "Check requirements for Mcas.": { + "$ref": "./examples/dataConnectors/CheckRequirementsMicrosoftCloudAppSecurity.json" + }, + "Check requirements for Mdatp.": { + "$ref": "./examples/dataConnectors/CheckRequirementsMdatp.json" + }, + "Check requirements for OfficeATP.": { + "$ref": "./examples/dataConnectors/CheckRequirementsOfficeATP.json" + }, + "Check requirements for OfficeIRM.": { + "$ref": "./examples/dataConnectors/CheckRequirementsOfficeIRM.json" + }, + "Check requirements for Office365Project.": { + "$ref": "./examples/dataConnectors/CheckRequirementsOffice365Project.json" + }, + "Check requirements for MicrosoftPurviewInformationProtection.": { + "$ref": "./examples/dataConnectors/CheckRequirementsMicrosoftPurviewInformationProtection.json" + }, + "Check requirements for OfficePowerBI.": { + "$ref": "./examples/dataConnectors/CheckRequirementsOfficePowerBI.json" + }, + "Check requirements for Dynamics365.": { + "$ref": "./examples/dataConnectors/CheckRequirementsDynamics365.json" + }, + "Check requirements for MicrosoftThreatProtection.": { + "$ref": "./examples/dataConnectors/CheckRequirementsMicrosoftThreatProtection.json" + }, + "Check requirements for MicrosoftThreatIntelligence.": { + "$ref": "./examples/dataConnectors/CheckRequirementsMicrosoftThreatIntelligence.json" + }, + "Check requirements for IoT.": { + "$ref": "./examples/dataConnectors/CheckRequirementsIoT.json" + }, + "Check requirements for PurviewAudit.": { + "$ref": "./examples/dataConnectors/CheckRequirementsPurviewAudit.json" + } + }, + "tags": [ + "Check Data Connector Requirements" + ], + "description": "Get requirements state for a data connector type.", + "operationId": "DataConnectorsCheckRequirements_Post", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../common/2.0/types.json#/parameters/WorkspaceName" + }, + { + "$ref": "#/parameters/DataConnectorsCheckRequirementsBody" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DataConnectorRequirementsState" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "AADCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents AADIP (Azure Active Directory Identity Protection) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/AADCheckRequirementsProperties", + "description": "AADIP (Azure Active Directory Identity Protection) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureActiveDirectory" + }, + "AADCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "AADIP (Azure Active Directory Identity Protection) requirements check properties.", + "type": "object" + }, + "AATPCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents AATP (Azure Advanced Threat Protection) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/AATPCheckRequirementsProperties", + "description": "AATP (Azure Advanced Threat Protection) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureAdvancedThreatProtection" + }, + "AATPCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "AATP (Azure Advanced Threat Protection) requirements check properties.", + "type": "object" + }, + "ASCCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents ASC (Azure Security Center) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/ASCCheckRequirementsProperties", + "description": "ASC (Azure Security Center) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureSecurityCenter" + }, + "ASCCheckRequirementsProperties": { + "description": "ASC (Azure Security Center) requirements check properties.", + "properties": { + "subscriptionId": { + "description": "The subscription id to connect to, and get the data from.", + "type": "string" + } + }, + "type": "object" + }, + "AwsCloudTrailCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Amazon Web Services CloudTrail requirements check request.", + "type": "object", + "x-ms-discriminator-value": "AmazonWebServicesCloudTrail" + }, + "AwsS3CheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Amazon Web Services S3 requirements check request.", + "type": "object", + "x-ms-discriminator-value": "AmazonWebServicesS3" + }, + "DataConnectorsCheckRequirements": { + "description": "Data connector requirements properties.", + "properties": { + "kind": { + "$ref": "#/definitions/DataConnectorKind", + "description": "Describes the kind of connector to be checked.", + "type": "string" + } + }, + "discriminator": "kind", + "type": "object", + "required": [ + "kind" + ] + }, + "DataConnectorAuthorizationState": { + "description": "Describes the state of user's authorization for a connector kind.", + "enum": [ + "Valid", + "Invalid" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DataConnectorAuthorizationState", + "values": [ + { + "value": "Valid" + }, + { + "value": "Invalid" + } + ] + } + }, + "DataConnectorLicenseState": { + "description": "Describes the state of user's license for a connector kind.", + "enum": [ + "Valid", + "Invalid", + "Unknown" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DataConnectorLicenseState", + "values": [ + { + "value": "Valid" + }, + { + "value": "Invalid" + }, + { + "value": "Unknown" + } + ] + } + }, + "DataConnectorRequirementsState": { + "description": "Data connector requirements status.", + "properties": { + "authorizationState": { + "description": "Authorization state for this connector", + "$ref": "#/definitions/DataConnectorAuthorizationState" + }, + "licenseState": { + "description": "License state for this connector", + "$ref": "#/definitions/DataConnectorLicenseState" + } + }, + "type": "object" + }, + "Dynamics365CheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents Dynamics365 requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/Dynamics365CheckRequirementsProperties", + "description": "Dynamics365 requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Dynamics365" + }, + "Dynamics365CheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Dynamics365 requirements check properties.", + "type": "object" + }, + "MCASCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents MCAS (Microsoft Cloud App Security) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/MCASCheckRequirementsProperties", + "description": "MCAS (Microsoft Cloud App Security) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftCloudAppSecurity" + }, + "MCASCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MCAS (Microsoft Cloud App Security) requirements check properties.", + "type": "object" + }, + "MDATPCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents MDATP (Microsoft Defender Advanced Threat Protection) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/MDATPCheckRequirementsProperties", + "description": "MDATP (Microsoft Defender Advanced Threat Protection) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" + }, + "MDATPCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) requirements check properties.", + "type": "object" + }, + "MSTICheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents Microsoft Threat Intelligence requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/MSTICheckRequirementsProperties", + "description": "Microsoft Threat Intelligence requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftThreatIntelligence" + }, + "MSTICheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Microsoft Threat Intelligence requirements check properties.", + "type": "object" + }, + "MtpCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents MTP (Microsoft Threat Protection) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/MTPCheckRequirementsProperties", + "description": "MTP (Microsoft Threat Protection) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftThreatProtection" + }, + "MTPCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MTP (Microsoft Threat Protection) requirements check properties.", + "type": "object" + }, + "OfficeATPCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents OfficeATP (Office 365 Advanced Threat Protection) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeATPCheckRequirementsProperties", + "description": "OfficeATP (Office 365 Advanced Threat Protection) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficeATP" + }, + "OfficeATPCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "OfficeATP (Office 365 Advanced Threat Protection) requirements check properties.", + "type": "object" + }, + "OfficeIRMCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents OfficeIRM (Microsoft Insider Risk Management) requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeIRMCheckRequirementsProperties", + "description": "OfficeIRM (Microsoft Insider Risk Management) requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficeIRM" + }, + "OfficeIRMCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "OfficeIRM (Microsoft Insider Risk Management) requirements check properties.", + "type": "object" + }, + "MicrosoftPurviewInformationProtectionCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents MicrosoftPurviewInformationProtection requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/MicrosoftPurviewInformationProtectionCheckRequirementsProperties", + "description": "MicrosoftPurviewInformationProtection requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftPurviewInformationProtection" + }, + "MicrosoftPurviewInformationProtectionCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MicrosoftPurviewInformationProtection requirements check properties.", + "type": "object" + }, + "Office365ProjectCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents Office365 Project requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/Office365ProjectCheckRequirementsProperties", + "description": "Office365 Project requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Office365Project" + }, + "Office365ProjectCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Office365 Project requirements check properties.", + "type": "object" + }, + "OfficePowerBICheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents Office PowerBI requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficePowerBICheckRequirementsProperties", + "description": "Office Power BI requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficePowerBI" + }, + "PurviewAuditCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents PurviewAudit requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/PurviewAuditCheckRequirementsProperties", + "description": "PurviewAudit requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "PurviewAudit" + }, + "PurviewAuditCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "PurviewAudit requirements check properties.", + "type": "object" + }, + "OfficePowerBICheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Office PowerBI requirements check properties.", + "type": "object" + }, + "TICheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Threat Intelligence Platforms data connector check requirements", + "properties": { + "properties": { + "$ref": "#/definitions/TICheckRequirementsProperties", + "description": "Threat Intelligence Platforms data connector check required properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligence" + }, + "TICheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Threat Intelligence Platforms data connector required properties.", + "properties": {}, + "type": "object" + }, + "TiTaxiiCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Threat Intelligence TAXII data connector check requirements", + "properties": { + "properties": { + "$ref": "#/definitions/TiTaxiiCheckRequirementsProperties", + "description": "Threat Intelligence TAXII check required properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligenceTaxii" + }, + "TiTaxiiCheckRequirementsProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Threat Intelligence TAXII data connector required properties.", + "type": "object" + }, + "IoTCheckRequirements": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + } + ], + "description": "Represents IoT requirements check request.", + "properties": { + "properties": { + "$ref": "#/definitions/IoTCheckRequirementsProperties", + "description": "IoT requirements check properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "IOT" + }, + "IoTCheckRequirementsProperties": { + "description": "IoT requirements check properties.", + "properties": { + "subscriptionId": { + "description": "The subscription id to connect to, and get the data from.", + "type": "string" + } + }, + "type": "object" + }, + "AADDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents AADIP (Azure Active Directory Identity Protection) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/AADDataConnectorProperties", + "description": "AADIP (Azure Active Directory Identity Protection) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureActiveDirectory" + }, + "AADDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + }, + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "AADIP (Azure Active Directory Identity Protection) data connector properties.", + "type": "object" + }, + "AlertsDataTypeOfDataConnector": { + "description": "Alerts data type for data connectors.", + "properties": { + "alerts": { + "$ref": "#/definitions/DataConnectorDataTypeCommon", + "description": "Alerts data type connection.", + "type": "object" + } + }, + "type": "object", + "required": [ + "alerts" + ] + }, + "MSTIDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Microsoft Threat Intelligence data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/MSTIDataConnectorProperties", + "description": "Microsoft Threat Intelligence data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftThreatIntelligence" + }, + "MSTIDataConnectorDataTypes": { + "description": "The available data types for Microsoft Threat Intelligence Platforms data connector.", + "properties": { + "microsoftEmergingThreatFeed": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "properties": { + "lookbackPeriod": { + "description": "The lookback period for the feed to be imported.", + "type": "string" + } + }, + "description": "Data type for Microsoft Threat Intelligence Platforms data connector.", + "type": "object", + "required": [ + "lookbackPeriod" + ] + } + }, + "type": "object", + "required": [ + "microsoftEmergingThreatFeed" + ] + }, + "MSTIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Microsoft Threat Intelligence data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/MSTIDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "required": [ + "dataTypes" + ], + "type": "object" + }, + "MTPDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents MTP (Microsoft Threat Protection) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/MTPDataConnectorProperties", + "description": "MTP (Microsoft Threat Protection) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftThreatProtection" + }, + "MTPDataConnectorDataTypes": { + "description": "The available data types for Microsoft Threat Protection Platforms data connector.", + "properties": { + "incidents": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Incidents data type for Microsoft Threat Protection Platforms data connector.", + "type": "object" + }, + "alerts": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Alerts data type for Microsoft Threat Protection Platforms data connector.", + "type": "object" + } + }, + "type": "object", + "required": [ + "incidents" + ] + }, + "MtpProvider": { + "description": "The available data providers.", + "enum": [ + "microsoftDefenderForCloudApps", + "microsoftDefenderForIdentity" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "MtpProvider" + } + }, + "MtpFilteredProviders": { + "description": "Represents the connector's Filtered providers", + "properties": { + "alerts": { + "description": "Alerts filtered providers. When filters are not applied, all alerts will stream through the MTP pipeline, still in private preview for all products EXCEPT MDA and MDI, which are in GA state.", + "items": { + "$ref": "#/definitions/MtpProvider" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "alerts" + ] + }, + "MTPDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MTP (Microsoft Threat Protection) data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/MTPDataConnectorDataTypes", + "description": "The available data types for the connector." + }, + "filteredProviders": { + "$ref": "#/definitions/MtpFilteredProviders", + "description": "The available filtered providers for the connector." + } + }, + "required": [ + "dataTypes" + ], + "type": "object" + }, + "AATPDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents AATP (Azure Advanced Threat Protection) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/AATPDataConnectorProperties", + "description": "AATP (Azure Advanced Threat Protection) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureAdvancedThreatProtection" + }, + "AATPDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + }, + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "AATP (Azure Advanced Threat Protection) data connector properties.", + "type": "object" + }, + "ASCDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents ASC (Azure Security Center) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/ASCDataConnectorProperties", + "description": "ASC (Azure Security Center) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AzureSecurityCenter" + }, + "ASCDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "ASC (Azure Security Center) data connector properties.", + "properties": { + "subscriptionId": { + "description": "The subscription id to connect to, and get the data from.", + "type": "string" + } + }, + "type": "object" + }, + "AwsCloudTrailDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Amazon Web Services CloudTrail data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/AwsCloudTrailDataConnectorProperties", + "description": "Amazon Web Services CloudTrail data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AmazonWebServicesCloudTrail" + }, + "AwsCloudTrailDataConnectorDataTypes": { + "description": "The available data types for Amazon Web Services CloudTrail data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "AwsCloudTrailDataConnectorProperties": { + "description": "Amazon Web Services CloudTrail data connector properties.", + "properties": { + "awsRoleArn": { + "description": "The Aws Role Arn (with CloudTrailReadOnly policy) that is used to access the Aws account.", + "type": "string" + }, + "dataTypes": { + "$ref": "#/definitions/AwsCloudTrailDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "AwsS3DataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Amazon Web Services S3 data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/AwsS3DataConnectorProperties", + "description": "Amazon Web Services S3 data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "AmazonWebServicesS3" + }, + "AwsS3DataConnectorDataTypes": { + "description": "The available data types for Amazon Web Services S3 data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "AwsS3DataConnectorProperties": { + "description": "Amazon Web Services S3 data connector properties.", + "properties": { + "destinationTable": { + "description": "The logs destination table name in LogAnalytics.", + "type": "string" + }, + "sqsUrls": { + "description": "The AWS sqs urls for the connector.", + "x-ms-identifiers": [], + "type": "array", + "items": { + "description": "AWS sqs url.", + "type": "string" + } + }, + "roleArn": { + "description": "The Aws Role Arn that is used to access the Aws account.", + "type": "string" + }, + "dataTypes": { + "$ref": "#/definitions/AwsS3DataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "destinationTable", + "sqsUrls", + "roleArn", + "dataTypes" + ] + }, + "RestApiPollerDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Rest Api Poller data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/RestApiPollerDataConnectorProperties", + "description": "Rest Api Poller data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "RestApiPoller" + }, + "RestApiPollerDataConnectorProperties": { + "description": "Rest Api Poller data connector properties.", + "properties": { + "connectorDefinitionName": { + "description": "The connector definition name (the dataConnectorDefinition resource id).", + "type": "string" + }, + "auth": { + "description": "The a authentication model.", + "$ref": "#/definitions/CcpAuthConfig" + }, + "request": { + "description": "The request configuration.", + "$ref": "#/definitions/RestApiPollerRequestConfig" + }, + "dcrConfig": { + "description": "The DCR related properties.", + "$ref": "#/definitions/DCRConfiguration" + }, + "isActive": { + "description": "Indicates whether the connector is active or not.", + "type": "boolean" + }, + "dataType": { + "description": "The Log Analytics table destination.", + "type": "string" + }, + "response": { + "description": "The response configuration.", + "$ref": "#/definitions/CcpResponseConfig" + }, + "paging": { + "description": "The paging configuration.", + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + }, + "addOnAttributes": { + "description": "The add on attributes. The key name will become attribute name (a column) and the value will become the attribute value in the payload.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "type": "object", + "required": [ + "connectorDefinitionName", + "auth", + "request" + ] + }, + "RestApiPollerRequestConfig": { + "type": "object", + "description": "The request configuration.", + "properties": { + "apiEndpoint": { + "description": "The API endpoint.", + "type": "string" + }, + "rateLimitQPS": { + "description": "The Rate limit queries per second for the request..", + "type": "integer", + "x-nullable": true, + "format": "int32" + }, + "queryWindowInMin": { + "description": "The query window in minutes for the request.", + "type": "integer", + "x-nullable": true, + "format": "int32" + }, + "httpMethod": { + "description": "The HTTP method, default value GET.", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "httpMethodVerb" + } + }, + "queryTimeFormat": { + "description": "The query time format. A remote server can have a query to pull data from range 'start' to 'end'. This property indicate what is the expected time format the remote server know to parse.", + "example": "UnixTimestamp, UnixTimestampInMills, or more specific formats, for example: yyyy-MM-ddTHH:mm:ssZ", + "type": "string" + }, + "retryCount": { + "description": "The retry count.", + "type": "integer", + "x-nullable": true, + "format": "int32" + }, + "timeoutInSeconds": { + "description": "The timeout in seconds.", + "type": "integer", + "x-nullable": true, + "format": "int32" + }, + "isPostPayloadJson": { + "description": "Flag to indicate if HTTP POST payload is in JSON format (vs form-urlencoded).", + "type": "boolean", + "x-nullable": true + }, + "headers": { + "description": "The header for the request for the remote server.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "queryParameters": { + "description": "The HTTP query parameters to RESTful API.", + "type": "object", + "additionalProperties": {} + }, + "queryParametersTemplate": { + "description": "the query parameters template. Defines the query parameters template to use when passing query parameters in advanced scenarios.", + "type": "string" + }, + "startTimeAttributeName": { + "description": "The query parameter name which the remote server expect to start query. This property goes hand to hand with `endTimeAttributeName`.", + "type": "string" + }, + "endTimeAttributeName": { + "description": "The query parameter name which the remote server expect to end query. This property goes hand to hand with `startTimeAttributeName`", + "type": "string" + }, + "queryTimeIntervalAttributeName": { + "description": "The query parameter name which we need to send the server for query logs in time interval. Should be defined with `queryTimeIntervalPrepend` and `queryTimeIntervalDelimiter`", + "type": "string" + }, + "queryTimeIntervalPrepend": { + "description": "The string prepend to the value of the query parameter in `queryTimeIntervalAttributeName`.", + "type": "string" + }, + "queryTimeIntervalDelimiter": { + "description": "The delimiter string between 2 QueryTimeFormat in the query parameter `queryTimeIntervalAttributeName`.", + "type": "string" + } + }, + "required": [ + "apiEndpoint" + ] + }, + "RestApiPollerRequestPagingKind": { + "type": "string", + "enum": [ + "LinkHeader", + "NextPageToken", + "NextPageUrl", + "PersistentToken", + "PersistentLinkHeader", + "Offset", + "CountBasedPaging" + ], + "description": "Type of paging", + "x-ms-enum": { + "modelAsString": true, + "name": "RestApiPollerRequestPagingKind", + "values": [ + { + "value": "LinkHeader" + }, + { + "value": "NextPageToken" + }, + { + "value": "NextPageUrl" + }, + { + "value": "PersistentToken" + }, + { + "value": "PersistentLinkHeader" + }, + { + "value": "Offset" + }, + { + "value": "CountBasedPaging" + } + ] + } + }, + "RestApiPollerRequestPagingConfig": { + "description": "The request paging configuration.", + "type": "object", + "properties": { + "pagingType": { + "type": "string", + "$ref": "#/definitions/RestApiPollerRequestPagingKind", + "description": "Type of paging" + }, + "pageSize": { + "type": "integer", + "description": "Page size", + "format": "int32" + }, + "pageSizeParameterName": { + "type": "string", + "description": "Page size parameter name" + } + }, + "x-ms-discriminator": { + "propertyName": "pagingType", + "mapping": { + "LinkHeader": "#/components/schemas/RestApiPollerRequestPagingLinkHeaderConfig", + "NextPageToken": "#/components/schemas/RestApiPollerRequestPagingTokenConfig", + "NextPageUrl": "#/components/schemas/RestApiPollerRequestPagingNextPageUrlConfig", + "PersistentToken": "#/components/schemas/RestApiPollerRequestPagingTokenConfig", + "PersistentLinkHeader": "#/components/schemas/RestApiPollerRequestPagingLinkHeaderConfig", + "Offset": "#/components/schemas/RestApiPollerRequestPagingOffsetConfig", + "CountBasedPaging": "#/components/schemas/RestApiPollerRequestPagingCountBaseConfig" + } + }, + "required": [ + "pagingType" + ] + }, + "RestApiPollerRequestPagingLinkHeaderConfig": { + "description": "The request paging configuration for LinkHeader and PersistentLinkHeader paging type parameters.", + "allOf": [ + { + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + } + ], + "type": "object", + "properties": { + "linkHeaderTokenJsonPath": { + "type": "string", + "description": "JSON path of link header token in HTTP response payload" + }, + "linkHeaderRelLinkName": { + "type": "string", + "description": "Rel link name from the link header" + } + } + }, + "RestApiPollerRequestPagingTokenConfig": { + "allOf": [ + { + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + } + ], + "description": "The request paging configuration for NextPageToken and PersistentToken paging type parameters.", + "type": "object", + "properties": { + "nextPageTokenJsonPath": { + "type": "string", + "description": "JSON path of next page token in HTTP response payload" + }, + "hasNextFlagJsonPath": { + "type": "string", + "description": "JSON path of flag in HTTP response payload to indicate more pages" + }, + "nextPageTokenResponseHeader": { + "type": "string", + "description": "HTTP response header name of next page token" + }, + "nextPageParaName": { + "type": "string", + "description": "Next page parameter name in HTTP request" + }, + "nextPageRequestHeader": { + "type": "string", + "description": "Next page header name in the request" + } + } + }, + "RestApiPollerRequestPagingNextPageUrlConfig": { + "allOf": [ + { + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + } + ], + "description": "The request paging configuration for NextPageUrl paging type parameters.", + "type": "object", + "properties": { + "nextPageUrl": { + "type": "string", + "description": "Next page URL" + }, + "nextPageUrlQueryParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Query parameters of next page URL" + }, + "nextPageUrlQueryParametersTemplate": { + "type": "string", + "description": "Paging query parameters in string template format" + }, + "nextPageParaName": { + "type": "string", + "description": "Next page parameter name in HTTP request" + }, + "nextPageRequestHeader": { + "type": "string", + "description": "Next page header name in the request" + }, + "hasNextFlagJsonPath": { + "type": "string", + "description": "JSON path of flag in HTTP response payload to indicate more pages" + } + } + }, + "RestApiPollerRequestPagingOffsetConfig": { + "allOf": [ + { + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + } + ], + "description": "The request paging configuration for Offset paging type parameters.", + "type": "object", + "properties": { + "offsetParaName": { + "type": "string", + "description": "Offset parameter name in HTTP request" + } + } + }, + "RestApiPollerRequestPagingCountBaseConfig": { + "allOf": [ + { + "$ref": "#/definitions/RestApiPollerRequestPagingConfig" + } + ], + "description": "The request paging configuration for Count base paging type parameters.", + "type": "object", + "properties": { + "zeroBasedIndexing": { + "type": "boolean", + "description": "Indicates whether the count is zero based" + }, + "pageCountJsonPath": { + "type": "string", + "description": "JSON path of page count in HTTP response payload" + }, + "pageNumberParaName": { + "type": "string", + "description": "Parameter name of page number in HTTP request" + }, + "pageNumberJsonPath": { + "type": "string", + "description": "JSON path of page number in HTTP response payload" + }, + "totalResultsJsonPath": { + "type": "string", + "description": "JSON path of total number of results in HTTP response payload" + } + } + }, + "GCPDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Google Cloud Platform data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/GCPDataConnectorProperties", + "description": "Google Cloud Platform data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "GCP" + }, + "GCPDataConnectorProperties": { + "description": "Google Cloud Platform data connector properties.", + "properties": { + "connectorDefinitionName": { + "description": "The name of the connector definition that represents the UI config.", + "type": "string" + }, + "auth": { + "$ref": "#/definitions/GCPAuthProperties", + "description": "The auth section of the connector." + }, + "request": { + "$ref": "#/definitions/GCPRequestProperties", + "description": "The request section of the connector." + }, + "dcrConfig": { + "$ref": "#/definitions/DCRConfiguration", + "description": "The configuration of the destination of the data." + } + }, + "type": "object", + "required": [ + "connectorDefinitionName", + "auth", + "request" + ] + }, + "GCPAuthProperties": { + "description": "Google Cloud Platform auth section properties.", + "properties": { + "serviceAccountEmail": { + "description": "The service account that is used to access the GCP project.", + "type": "string" + }, + "projectNumber": { + "description": "The GCP project number.", + "type": "string" + }, + "workloadIdentityProviderId": { + "description": "The workload identity provider id that is used to gain access to the GCP project.", + "type": "string" + } + }, + "type": "object", + "required": [ + "serviceAccountEmail", + "projectNumber", + "workloadIdentityProviderId" + ] + }, + "GCPRequestProperties": { + "description": "Google Cloud Platform request section properties.", + "properties": { + "projectId": { + "description": "The GCP project id.", + "type": "string" + }, + "subscriptionNames": { + "description": "The GCP pub/sub subscription names.", + "x-ms-identifiers": [], + "type": "array", + "items": { + "description": "GCP pub/sub subscription name.", + "type": "string" + } + } + }, + "type": "object", + "required": [ + "projectId", + "subscriptionNames" + ] + }, + "DCRConfiguration": { + "description": "The configuration of the destination of the data.", + "properties": { + "dataCollectionEndpoint": { + "description": "Represents the data collection ingestion endpoint in log analytics.", + "type": "string" + }, + "dataCollectionRuleImmutableId": { + "description": "The data collection rule immutable id, the rule defines the transformation and data destination.", + "type": "string" + }, + "streamName": { + "description": "The stream we are sending the data to.", + "type": "string" + } + }, + "type": "object", + "required": [ + "dataCollectionEndpoint", + "dataCollectionRuleImmutableId", + "streamName" + ] + }, + "CcpAuthType": { + "type": "string", + "enum": [ + "Basic", + "APIKey", + "OAuth2", + "AWS", + "GCP", + "Session", + "JwtToken", + "GitHub", + "ServiceBus", + "Oracle", + "None" + ], + "description": "Type of paging", + "x-ms-enum": { + "modelAsString": true, + "name": "CcpAuthType", + "values": [ + { + "value": "Basic" + }, + { + "value": "APIKey" + }, + { + "value": "OAuth2" + }, + { + "value": "AWS" + }, + { + "value": "GCP" + }, + { + "value": "Session" + }, + { + "value": "JwtToken" + }, + { + "value": "GitHub" + }, + { + "value": "ServiceBus" + }, + { + "value": "Oracle" + }, + { + "value": "None" + } + ] + } + }, + "CcpAuthConfig": { + "description": "Base Model for API authentication.", + "properties": { + "type": { + "description": "The auth type", + "$ref": "#/definitions/CcpAuthType", + "type": "string" + } + }, + "type": "object", + "required": [ + "type" + ], + "discriminator": "type" + }, + "ApiKeyAuthModel": { + "description": "Model for authentication with the API Key. Will result in additional header on the request (default behavior) to the remote server: 'ApiKeyName: ApiKeyIdentifier ApiKey'. If 'IsApiKeyInPostPayload' is true it will send it in the body of the request and not the header.", + "example": "ApiKey = placeholderApiKey, ApiKeyName = 'Authorization', ApiKeyIdentifier = 'token', IsApiKeyInPostPayload = false. will result in a new header on the request: 'Authorization: token placeholderApiKey'", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key for the user secret key credential" + }, + "apiKeyName": { + "type": "string", + "description": "API Key name" + }, + "apiKeyIdentifier": { + "type": "string", + "description": "API Key Identifier" + }, + "isApiKeyInPostPayload": { + "type": "boolean", + "description": "Flag to indicate if API key is set in HTTP POST payload" + } + }, + "required": [ + "apiKey", + "apiKeyName" + ], + "x-ms-discriminator-value": "APIKey" + }, + "AWSAuthModel": { + "description": "Model for API authentication with AWS.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "roleArn": { + "type": "string", + "description": "AWS STS assume role ARN", + "example": "arn:aws:iam::123456789012:role/your-role-name" + }, + "externalId": { + "type": "string", + "description": "AWS STS assume role external ID. This is used to prevent the confused deputy problem: 'https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html'" + } + }, + "required": [ + "roleArn" + ], + "x-ms-discriminator-value": "AWS" + }, + "BasicAuthModel": { + "description": "Model for API authentication with basic flow - user name + password.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "userName": { + "type": "string", + "description": "The user name." + }, + "password": { + "type": "string", + "description": "The password", + "x-secret": true + } + }, + "required": [ + "userName", + "password" + ], + "x-ms-discriminator-value": "Basic" + }, + "GCPAuthModel": { + "description": "Model for API authentication for all GCP kind connectors.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "serviceAccountEmail": { + "type": "string", + "description": "GCP Service Account Email" + }, + "projectNumber": { + "type": "string", + "description": "GCP Project Number" + }, + "workloadIdentityProviderId": { + "type": "string", + "description": "GCP Workload Identity Provider ID" + } + }, + "required": [ + "serviceAccountEmail", + "projectNumber", + "workloadIdentityProviderId" + ], + "x-ms-discriminator-value": "GCP" + }, + "GenericBlobSbsAuthModel": { + "description": "Model for API authentication for working with service bus or storage account.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "credentialsConfig": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Credentials for service bus namespace, keyvault uri for access key" + }, + "storageAccountCredentialsConfig": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Credentials for storage account, keyvault uri for access key" + } + }, + "x-ms-discriminator-value": "ServiceBus" + }, + "GitHubAuthModel": { + "description": "Model for API authentication for GitHub. For this authentication first we need to approve the Router app (Microsoft Security DevOps) to access the GitHub account, Then we only need the InstallationId to get the access token from https://api.github.com/app/installations/{installId}/access_tokens.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "properties": { + "installationId": { + "type": "string", + "description": "The GitHubApp auth installation id." + } + }, + "x-ms-discriminator-value": "GitHub" + }, + "NoneAuthModel": { + "description": "Model for API authentication with no authentication method - public API.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "type": "object", + "x-ms-discriminator-value": "None" + }, + "JwtAuthModel": { + "description": "Model for API authentication with JWT. Simple exchange between user name + password to access token.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "properties": { + "tokenEndpoint": { + "type": "string", + "description": "Token endpoint to request JWT" + }, + "userName": { + "description": "The user name. If user name and password sent in header request we only need to populate the `value` property with the user name (Same as basic auth). If user name and password sent in body request we need to specify the `Key` and `Value`.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "password": { + "description": "The password", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-secret": true + }, + "queryParameters": { + "description": "The custom query parameter we want to add once we send request to token endpoint.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "headers": { + "description": "The custom headers we want to add once we send request to token endpoint.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "isCredentialsInHeaders": { + "type": "boolean", + "x-nullable": true, + "description": "Flag indicating whether we want to send the user name and password to token endpoint in the headers." + }, + "isJsonRequest": { + "type": "boolean", + "x-nullable": true, + "default": false, + "description": "Flag indicating whether the body request is JSON (header Content-Type = application/json), meaning its a Form URL encoded request (header Content-Type = application/x-www-form-urlencoded)." + }, + "requestTimeoutInSeconds": { + "type": "integer", + "format": "int32", + "default": 100, + "maximum": 180, + "description": "Request timeout in seconds." + } + }, + "type": "object", + "x-ms-discriminator-value": "JwtToken", + "required": [ + "tokenEndpoint", + "userName", + "password" + ] + }, + "OAuthModel": { + "description": "Model for API authentication with OAuth2.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "properties": { + "authorizationCode": { + "type": "string", + "description": "The user's authorization code.", + "x-secret": true + }, + "clientSecret": { + "type": "string", + "description": "The Application (client) secret that the OAuth provider assigned to your app.", + "x-secret": true + }, + "clientId": { + "type": "string", + "description": "The Application (client) ID that the OAuth provider assigned to your app." + }, + "isCredentialsInHeaders": { + "type": "boolean", + "x-nullable": true, + "default": false, + "description": "Indicating whether we want to send the clientId and clientSecret to token endpoint in the headers." + }, + "scope": { + "type": "string", + "description": "The Application (client) Scope that the OAuth provider assigned to your app." + }, + "redirectUri": { + "type": "string", + "format": "uri", + "description": "The Application redirect url that the user config in the OAuth provider." + }, + "grantType": { + "type": "string", + "description": "The grant type, usually will be 'authorization code'." + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint. Defines the OAuth2 refresh token." + }, + "tokenEndpointHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The token endpoint headers." + }, + "tokenEndpointQueryParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The token endpoint query parameters." + }, + "authorizationEndpoint": { + "type": "string", + "description": "The authorization endpoint." + }, + "authorizationEndpointHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The authorization endpoint headers." + }, + "authorizationEndpointQueryParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The authorization endpoint query parameters." + }, + "isJwtBearerFlow": { + "type": "boolean", + "description": "A value indicating whether it's a JWT flow." + }, + "accessTokenPrepend": { + "type": "string", + "description": "Access token prepend. Default is 'Bearer'." + } + }, + "required": [ + "clientSecret", + "clientId", + "grantType", + "tokenEndpoint" + ], + "type": "object", + "x-ms-discriminator-value": "OAuth2" + }, + "OracleAuthModel": { + "description": "Model for API authentication for Oracle.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "properties": { + "tenantId": { + "type": "string", + "description": "Oracle tenant ID" + }, + "userId": { + "type": "string", + "description": "Oracle user ID" + }, + "publicFingerprint": { + "type": "string", + "description": "Public Fingerprint" + }, + "pemFile": { + "type": "string", + "description": "Content of the PRM file" + } + }, + "type": "object", + "required": [ + "tenantId", + "userId", + "publicFingerprint", + "pemFile" + ], + "x-ms-discriminator-value": "Oracle" + }, + "SessionAuthModel": { + "description": "Model for API authentication with session cookie.", + "allOf": [ + { + "$ref": "#/definitions/CcpAuthConfig" + } + ], + "properties": { + "userName": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The user name attribute key value." + }, + "password": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The password attribute name.", + "x-secret": true + }, + "queryParameters": { + "type": "object", + "additionalProperties": {}, + "description": "Query parameters to session service endpoint." + }, + "isPostPayloadJson": { + "type": "boolean", + "x-nullable": true, + "description": "Indicating whether API key is set in HTTP POST payload." + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "HTTP request headers to session service endpoint." + }, + "sessionTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "x-nullable": true, + "description": "Session timeout in minutes." + }, + "sessionIdName": { + "type": "string", + "description": "Session id attribute name from HTTP response header." + }, + "sessionLoginRequestUri": { + "type": "string", + "description": "HTTP request URL to session service endpoint." + } + }, + "type": "object", + "required": [ + "userName", + "password" + ], + "x-ms-discriminator-value": "Session" + }, + "CcpResponseConfig": { + "description": "A custom response configuration for a rule.", + "properties": { + "eventsJsonPaths": { + "description": "The json paths, '$' char is the json root.", + "example": "'$', '$.someProperty'", + "type": "array", + "items": { + "type": "string" + } + }, + "successStatusJsonPath": { + "description": "The value where the status message/code should appear in the response.", + "type": "string" + }, + "successStatusValue": { + "description": "The status value.", + "type": "string", + "x-nullable": true + }, + "isGzipCompressed": { + "description": "The value indicating whether the remote server support Gzip and we should expect Gzip response.", + "type": "boolean" + }, + "compressionAlgo": { + "description": "The compression algorithm. For Example: 'gzip', 'multi-gzip', 'deflate'.", + "type": "string", + "default": "gzip" + }, + "format": { + "description": "The response format. possible values are json,csv,xml", + "type": "string", + "default": "json" + }, + "csvDelimiter": { + "description": "The csv delimiter, in case the response format is CSV.", + "type": "string" + }, + "hasCsvBoundary": { + "description": "The value indicating whether the response has CSV boundary in case the response in CSV format.", + "type": "boolean", + "x-nullable": true + }, + "hasCsvHeader": { + "description": "The value indicating whether the response has headers in case the response in CSV format.", + "type": "boolean", + "x-nullable": true + }, + "convertChildPropertiesToArray": { + "description": "The value indicating whether the response isn't an array of events / logs. By setting this flag to true it means the remote server will response with an object which each property has as a value an array of events / logs.", + "type": "boolean", + "x-nullable": true + }, + "csvEscape": { + "description": "The character used to escape characters in CSV.", + "type": "string", + "x-nullable": true, + "default": "\"", + "minLength": 1, + "maxLength": 1 + } + }, + "type": "object", + "required": [ + "eventsJsonPaths" + ] + }, + "DataConnector": { + "description": "Data connector", + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], + "discriminator": "kind", + "required": [ + "kind" + ], + "properties": { + "kind": { + "$ref": "#/definitions/DataConnectorKind", + "description": "The data connector kind", + "type": "string" + } + }, + "type": "object" + }, + "DataConnectorDataTypeCommon": { + "description": "Common field for data type in data connectors.", + "properties": { + "state": { + "description": "Describe whether this data type connection is enabled or not.", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DataTypeState" + } + } + }, + "type": "object", + "required": [ + "state" + ] + }, + "DataConnectorWithAlertsProperties": { + "description": "Data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/AlertsDataTypeOfDataConnector", + "description": "The available data types for the connector." + } + }, + "type": "object" + }, + "DataConnectorKind": { + "description": "The kind of the data connector", + "enum": [ + "AzureActiveDirectory", + "AzureSecurityCenter", + "MicrosoftCloudAppSecurity", + "ThreatIntelligence", + "ThreatIntelligenceTaxii", + "Office365", + "OfficeATP", + "OfficeIRM", + "Office365Project", + "MicrosoftPurviewInformationProtection", + "OfficePowerBI", + "AmazonWebServicesCloudTrail", + "AmazonWebServicesS3", + "AzureAdvancedThreatProtection", + "MicrosoftDefenderAdvancedThreatProtection", + "Dynamics365", + "MicrosoftThreatProtection", + "MicrosoftThreatIntelligence", + "GenericUI", + "APIPolling", + "IOT", + "GCP", + "RestApiPoller", + "PurviewAudit" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "DataConnectorKind", + "values": [ + { + "value": "AzureActiveDirectory" + }, + { + "value": "AzureSecurityCenter" + }, + { + "value": "MicrosoftCloudAppSecurity" + }, + { + "value": "ThreatIntelligence" + }, + { + "value": "ThreatIntelligenceTaxii" + }, + { + "value": "Office365" + }, + { + "value": "OfficeATP" + }, + { + "value": "OfficeIRM" + }, + { + "value": "Office365Project" + }, + { + "value": "MicrosoftPurviewInformationProtection" + }, + { + "value": "OfficePowerBI" + }, + { + "value": "AmazonWebServicesCloudTrail" + }, + { + "value": "AmazonWebServicesS3" + }, + { + "value": "AzureAdvancedThreatProtection" + }, + { + "value": "MicrosoftDefenderAdvancedThreatProtection" + }, + { + "value": "Dynamics365" + }, + { + "value": "MicrosoftThreatProtection" + }, + { + "value": "MicrosoftThreatIntelligence" + }, + { + "value": "GenericUI" + }, + { + "value": "APIPolling" + }, + { + "value": "IOT" + }, + { + "value": "GCP" + }, + { + "value": "RestApiPoller" + }, + { + "value": "PurviewAudit" + } + ] + } + }, + "DataConnectorList": { + "description": "List all the data connectors.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of data connectors.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Array of data connectors.", + "items": { + "$ref": "#/definitions/DataConnector" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "value" + ] + }, + "DataConnectorTenantId": { + "description": "Properties data connector on tenant level.", + "properties": { + "tenantId": { + "description": "The tenant id to connect to, and get the data from.", + "type": "string" + } + }, + "type": "object", + "required": [ + "tenantId" + ] + }, + "MCASDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents MCAS (Microsoft Cloud App Security) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/MCASDataConnectorProperties", + "description": "MCAS (Microsoft Cloud App Security) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftCloudAppSecurity" + }, + "MCASDataConnectorDataTypes": { + "allOf": [ + { + "$ref": "#/definitions/AlertsDataTypeOfDataConnector" + } + ], + "description": "The available data types for MCAS (Microsoft Cloud App Security) data connector.", + "properties": { + "discoveryLogs": { + "$ref": "#/definitions/DataConnectorDataTypeCommon", + "description": "Discovery log data type connection." + } + }, + "type": "object" + }, + "MCASDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "MCAS (Microsoft Cloud App Security) data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/MCASDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "required": [ + "dataTypes" + ], + "type": "object" + }, + "Dynamics365DataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Dynamics365 data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/Dynamics365DataConnectorProperties", + "description": "Dynamics365 data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Dynamics365" + }, + "Dynamics365DataConnectorDataTypes": { + "description": "The available data types for Dynamics365 data connector.", + "properties": { + "dynamics365CdsActivities": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Common Data Service data type connection.", + "type": "object" + } + }, + "type": "object", + "required": [ + "dynamics365CdsActivities" + ] + }, + "Dynamics365DataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Dynamics365 data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/Dynamics365DataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "required": [ + "dataTypes" + ], + "type": "object" + }, + "OfficeATPDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents OfficeATP (Office 365 Advanced Threat Protection) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeATPDataConnectorProperties", + "description": "OfficeATP (Office 365 Advanced Threat Protection) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficeATP" + }, + "OfficeATPDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + }, + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "OfficeATP (Office 365 Advanced Threat Protection) data connector properties.", + "type": "object" + }, + "MicrosoftPurviewInformationProtectionDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Microsoft Purview Information Protection data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/MicrosoftPurviewInformationProtectionDataConnectorProperties", + "description": "Microsoft Purview Information Protection data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftPurviewInformationProtection" + }, + "MicrosoftPurviewInformationProtectionConnectorDataTypes": { + "description": "The available data types for Microsoft Purview Information Protection data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "MicrosoftPurviewInformationProtectionDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Microsoft Purview Information Protection data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/MicrosoftPurviewInformationProtectionConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "Office365ProjectDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Office Microsoft Project data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/Office365ProjectDataConnectorProperties", + "description": "Office Microsoft Project data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Office365Project" + }, + "Office365ProjectConnectorDataTypes": { + "description": "The available data types for Office Microsoft Project data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "Office365ProjectDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Office Microsoft Project data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/Office365ProjectConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "OfficePowerBIDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Office Microsoft PowerBI data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficePowerBIDataConnectorProperties", + "description": "Office Microsoft PowerBI data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficePowerBI" + }, + "OfficePowerBIConnectorDataTypes": { + "description": "The available data types for Office Microsoft PowerBI data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "OfficePowerBIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Office Microsoft PowerBI data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/OfficePowerBIConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "PurviewAuditDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents PurviewAudit data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/PurviewAuditDataConnectorProperties", + "description": "PurviewAudit data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "PurviewAudit" + }, + "PurviewAuditConnectorDataTypes": { + "description": "The available data types for PurviewAudit data connector.", + "properties": { + "logs": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Logs data type.", + "type": "object" + } + }, + "type": "object", + "required": [ + "logs" + ] + }, + "PurviewAuditDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "PurviewAudit data connector properties.", + "properties": { + "connectorDefinitionName": { + "description": "The connector definition name (the dataConnectorDefinition resource id).", + "type": "string" + }, + "sourceType": { + "description": "The source type indicates which kind of data is relevant for this connector.", + "type": "string" + }, + "dcrConfig": { + "description": "The DCR related properties.", + "$ref": "#/definitions/DCRConfiguration" + }, + "dataTypes": { + "$ref": "#/definitions/PurviewAuditConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "OfficeIRMDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents OfficeIRM (Microsoft Insider Risk Management) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeIRMDataConnectorProperties", + "description": "OfficeIRM (Microsoft Insider Risk Management) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "OfficeIRM" + }, + "OfficeIRMDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + }, + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "OfficeIRM (Microsoft Insider Risk Management) data connector properties.", + "type": "object" + }, + "MDATPDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents MDATP (Microsoft Defender Advanced Threat Protection) data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/MDATPDataConnectorProperties", + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" + }, + "MDATPDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + }, + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", + "type": "object" + }, + "OfficeDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents office data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/OfficeDataConnectorProperties", + "description": "Office data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "Office365" + }, + "OfficeDataConnectorDataTypes": { + "description": "The available data types for office data connector.", + "properties": { + "exchange": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Exchange data type connection.", + "type": "object" + }, + "sharePoint": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "SharePoint data type connection.", + "type": "object" + }, + "teams": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Teams data type connection.", + "type": "object" + } + }, + "required": [ + "exchange", + "sharePoint", + "teams" + ], + "type": "object" + }, + "OfficeDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Office data connector properties.", + "properties": { + "dataTypes": { + "$ref": "#/definitions/OfficeDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "required": [ + "dataTypes" + ], + "type": "object" + }, + "TIDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents threat intelligence data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/TIDataConnectorProperties", + "description": "TI (Threat Intelligence) data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligence" + }, + "TIDataConnectorDataTypes": { + "description": "The available data types for TI (Threat Intelligence) data connector.", + "properties": { + "indicators": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Data type for indicators connection.", + "type": "object" + } + }, + "type": "object", + "required": [ + "indicators" + ] + }, + "TIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "TI (Threat Intelligence) data connector properties.", + "properties": { + "tipLookbackPeriod": { + "description": "The lookback period for the feed to be imported.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "dataTypes": { + "$ref": "#/definitions/TIDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "type": "object", + "required": [ + "dataTypes" + ] + }, + "TiTaxiiDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Data connector to pull Threat intelligence data from TAXII 2.0/2.1 server", + "properties": { + "properties": { + "$ref": "#/definitions/TiTaxiiDataConnectorProperties", + "description": "Threat intelligence TAXII data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "ThreatIntelligenceTaxii" + }, + "TiTaxiiDataConnectorDataTypes": { + "description": "The available data types for Threat Intelligence TAXII data connector.", + "properties": { + "taxiiClient": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Data type for TAXII connector.", + "type": "object" + } + }, + "type": "object", + "required": [ + "taxiiClient" + ] + }, + "TiTaxiiDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "description": "Threat Intelligence TAXII data connector properties.", + "properties": { + "workspaceId": { + "description": "The workspace id.", + "type": "string" + }, + "friendlyName": { + "description": "The friendly name for the TAXII server.", + "type": "string" + }, + "taxiiServer": { + "description": "The API root for the TAXII server.", + "type": "string" + }, + "collectionId": { + "description": "The collection id of the TAXII server.", + "type": "string" + }, + "userName": { + "description": "The userName for the TAXII server.", + "type": "string" + }, + "password": { + "description": "The password for the TAXII server.", + "type": "string" + }, + "taxiiLookbackPeriod": { + "description": "The lookback period for the TAXII server.", + "format": "date-time", + "type": "string", + "x-nullable": true + }, + "pollingFrequency": { + "description": "The polling frequency for the TAXII server.", + "type": "string", + "x-nullable": true, + "enum": [ + "OnceAMinute", + "OnceAnHour", + "OnceADay" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "PollingFrequency", + "values": [ + { + "description": "Once a minute", + "value": "OnceAMinute" + }, + { + "description": "Once an hour", + "value": "OnceAnHour" + }, + { + "description": "Once a day", + "value": "OnceADay" + } + ] + } + }, + "dataTypes": { + "$ref": "#/definitions/TiTaxiiDataConnectorDataTypes", + "description": "The available data types for Threat Intelligence TAXII data connector." + } + }, + "required": [ + "dataTypes", + "pollingFrequency" + ], + "type": "object" + }, + "IoTDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents IoT data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/IoTDataConnectorProperties", + "description": "IoT data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "IOT" + }, + "IoTDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" + } + ], + "description": "IoT data connector properties.", + "properties": { + "subscriptionId": { + "description": "The subscription id to connect to, and get the data from.", + "type": "string" + } + }, + "type": "object" + }, + "CodelessUiDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Codeless UI data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/CodelessParameters", + "description": "Codeless UI data connector properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "GenericUI" + }, + "CodelessParameters": { + "description": "Represents Codeless UI data connector", + "type": "object", + "properties": { + "connectorUiConfig": { + "$ref": "#/definitions/CodelessUiConnectorConfigProperties", + "description": "Config to describe the instructions blade" + } + } + }, + "CodelessUiConnectorConfigProperties": { + "description": "Config to describe the instructions blade", + "type": "object", + "properties": { + "title": { + "description": "Connector blade title", + "type": "string" + }, + "publisher": { + "description": "Connector publisher name", + "type": "string" + }, + "descriptionMarkdown": { + "description": "Connector description", + "type": "string" + }, + "customImage": { + "description": "An optional custom image to be used when displaying the connector within Azure Sentinel's connector's gallery", + "type": "string" + }, + "graphQueriesTableName": { + "description": "Name of the table the connector will insert the data to", + "type": "string" + }, + "graphQueries": { + "description": "The graph query to show the current data status", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/GraphQueries" + } + ] + }, + "type": "array" + }, + "sampleQueries": { + "description": "The sample queries for the connector", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/SampleQueries" + } + ] + }, + "type": "array" + }, + "dataTypes": { + "description": "Data types to check for last data received", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/LastDataReceivedDataType" + } + ] + }, + "type": "array" + }, + "connectivityCriteria": { + "description": "Define the way the connector check connectivity", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ConnectivityCriteria" + } + ] + }, + "type": "array" + }, + "availability": { + "description": "Connector Availability Status", + "$ref": "#/definitions/Availability" + }, + "permissions": { + "description": "Permissions required for the connector", + "$ref": "#/definitions/Permissions" + }, + "instructionSteps": { + "description": "Instruction steps to enable the connector", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/InstructionSteps" + } + ] + }, + "type": "array" + } + }, + "required": [ + "title", + "publisher", + "descriptionMarkdown", + "graphQueriesTableName", + "graphQueries", + "sampleQueries", + "dataTypes", + "connectivityCriteria", + "availability", + "permissions", + "instructionSteps" + ] + }, + "DataConnectorConnectBody": { + "description": "Represents Codeless API Polling data connector.", + "type": "object", + "x-ms-identifiers": [], + "properties": { + "kind": { + "description": "The authentication kind used to poll the data", + "enum": [ + "Basic", + "OAuth2", + "APIKey" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ConnectAuthKind" + } + }, + "apiKey": { + "type": "string", + "description": "The API key of the audit server.", + "x-secret": true + }, + "dataCollectionEndpoint": { + "type": "string", + "description": "Used in v2 logs connector. Represents the data collection ingestion endpoint in log analytics." + }, + "dataCollectionRuleImmutableId": { + "type": "string", + "description": "Used in v2 logs connector. The data collection rule immutable id, the rule defines the transformation and data destination." + }, + "outputStream": { + "type": "string", + "description": "Used in v2 logs connector. The stream we are sending the data to, this is the name of the streamDeclarations defined in the DCR." + }, + "clientSecret": { + "type": "string", + "description": "The client secret of the OAuth 2.0 application." + }, + "clientId": { + "type": "string", + "description": "The client id of the OAuth 2.0 application." + }, + "authorizationCode": { + "type": "string", + "description": "The authorization code used in OAuth 2.0 code flow to issue a token." + }, + "userName": { + "type": "string", + "description": "The user name in the audit log server." + }, + "password": { + "type": "string", + "description": "The user password in the audit log server.", + "x-ms-secret": true + }, + "requestConfigUserInputValues": { + "type": "array", + "description": "", + "x-ms-identifiers": [], + "items": { + "type": "object" + } + } + } + }, + "CodelessApiPollingDataConnector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Codeless API Polling data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/ApiPollingParameters", + "description": "Codeless poling data connector properties", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "APIPolling" + }, + "ApiPollingParameters": { + "description": "Represents Codeless API Polling data connector", + "type": "object", + "properties": { + "connectorUiConfig": { + "$ref": "#/definitions/CodelessUiConnectorConfigProperties", + "description": "Config to describe the instructions blade" + }, + "pollingConfig": { + "$ref": "#/definitions/CodelessConnectorPollingConfigProperties", + "description": "Config to describe the polling instructions" + } + } + }, + "CodelessConnectorPollingConfigProperties": { + "description": "Config to describe the polling config for API poller connector", + "type": "object", + "properties": { + "isActive": { + "description": "The poller active status", + "type": "boolean" + }, + "auth": { + "type": "object", + "$ref": "#/definitions/CodelessConnectorPollingAuthProperties", + "description": "Describe the authentication type of the poller" + }, + "request": { + "type": "object", + "$ref": "#/definitions/CodelessConnectorPollingRequestProperties", + "description": "Describe the poll request config parameters of the poller" + }, + "paging": { + "type": "object", + "$ref": "#/definitions/CodelessConnectorPollingPagingProperties", + "description": "Describe the poll request paging config of the poller" + }, + "response": { + "type": "object", + "$ref": "#/definitions/CodelessConnectorPollingResponseProperties", + "description": "Describe the response config parameters of the poller" + } + }, + "required": [ + "auth", + "request" + ] + }, + "CodelessConnectorPollingResponseProperties": { + "description": "Describes the response from the external server", + "type": "object", + "properties": { + "eventsJsonPaths": { + "description": "Describes the path we should extract the data in the response", + "x-ms-identifiers": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "successStatusJsonPath": { + "description": "Describes the path we should extract the status code in the response", + "type": "string" + }, + "successStatusValue": { + "description": "Describes the path we should extract the status value in the response", + "type": "string" + }, + "isGzipCompressed": { + "description": "Describes if the data in the response is Gzip", + "type": "boolean" + } + }, + "required": [ + "eventsJsonPaths" + ] + }, + "CodelessConnectorPollingPagingProperties": { + "description": "Describe the properties needed to make a pagination call", + "type": "object", + "properties": { + "pagingType": { + "description": "Describes the type. could be 'None', 'PageToken', 'PageCount', 'TimeStamp'", + "type": "string" + }, + "nextPageParaName": { + "description": "Defines the name of a next page attribute", + "type": "string" + }, + "nextPageTokenJsonPath": { + "description": "Defines the path to a next page token JSON", + "type": "string" + }, + "pageCountAttributePath": { + "description": "Defines the path to a page count attribute", + "type": "string" + }, + "pageTotalCountAttributePath": { + "description": "Defines the path to a page total count attribute", + "type": "string" + }, + "pageTimeStampAttributePath": { + "description": "Defines the path to a paging time stamp attribute", + "type": "string" + }, + "searchTheLatestTimeStampFromEventsList": { + "description": "Determines whether to search for the latest time stamp in the events list", + "type": "string" + }, + "pageSizeParaName": { + "description": "Defines the name of the page size parameter", + "type": "string" + }, + "pageSize": { + "description": "Defines the paging size", + "format": "int32", + "type": "integer" + } + }, + "required": [ + "pagingType" + ] + }, + "CodelessConnectorPollingRequestProperties": { + "description": "Describe the request properties needed to successfully pull from the server", + "type": "object", + "properties": { + "apiEndpoint": { + "description": "Describe the endpoint we should pull the data from", + "type": "string" + }, + "rateLimitQps": { + "description": "Defines the rate limit QPS", + "format": "int32", + "type": "integer" + }, + "queryWindowInMin": { + "description": "The window interval we will use the pull the data", + "format": "int32", + "type": "integer" + }, + "httpMethod": { + "description": "The http method type we will use in the poll request, GET or POST", + "type": "string" + }, + "queryTimeFormat": { + "description": "The time format will be used the query events in a specific window", + "type": "string" + }, + "retryCount": { + "description": "Describe the amount of time we should try and poll the data in case of failure", + "format": "int32", + "type": "integer" + }, + "timeoutInSeconds": { + "description": "The number of seconds we will consider as a request timeout", + "format": "int32", + "type": "integer" + }, + "headers": { + "description": "Describe the headers sent in the poll request", + "type": "object" + }, + "queryParameters": { + "description": "Describe the query parameters sent in the poll request", + "type": "object" + }, + "queryParametersTemplate": { + "description": "For advanced scenarios for example user name/password embedded in nested JSON payload", + "type": "string" + }, + "startTimeAttributeName": { + "description": "This will be used the query events from a start of the time window", + "type": "string" + }, + "endTimeAttributeName": { + "description": "This will be used the query events from the end of the time window", + "type": "string" + } + }, + "required": [ + "apiEndpoint", + "httpMethod", + "queryWindowInMin", + "queryTimeFormat" + ] + }, + "CodelessConnectorPollingAuthProperties": { + "description": "Describe the authentication properties needed to successfully authenticate with the server", + "type": "object", + "properties": { + "authType": { + "description": "The authentication type", + "type": "string" + }, + "apiKeyName": { + "description": "The header name which the token is sent with", + "type": "string" + }, + "apiKeyIdentifier": { + "description": "A prefix send in the header before the actual token", + "type": "string" + }, + "isApiKeyInPostPayload": { + "description": "Marks if the key should sent in header", + "type": "string" + }, + "flowName": { + "description": "Describes the flow name, for example 'AuthCode' for Oauth 2.0", + "type": "string" + }, + "tokenEndpoint": { + "description": "The endpoint used to issue a token, used in Oauth 2.0 flow", + "type": "string" + }, + "authorizationEndpoint": { + "description": "The endpoint used to authorize the user, used in Oauth 2.0 flow", + "type": "string" + }, + "authorizationEndpointQueryParameters": { + "description": "The query parameters used in authorization request, used in Oauth 2.0 flow", + "type": "object" + }, + "redirectionEndpoint": { + "description": "The redirect endpoint where we will get the authorization code, used in Oauth 2.0 flow", + "type": "string" + }, + "tokenEndpointHeaders": { + "description": "The query headers used in token request, used in Oauth 2.0 flow", + "type": "object" + }, + "tokenEndpointQueryParameters": { + "description": "The query parameters used in token request, used in Oauth 2.0 flow", + "type": "object" + }, + "isClientSecretInHeader": { + "description": "Marks if we should send the client secret in header or payload, used in Oauth 2.0 flow", + "type": "boolean" + }, + "scope": { + "description": "The OAuth token scope", + "type": "string" + } + }, + "required": [ + "authType" + ] + }, + "LastDataReceivedDataType": { + "description": "Data type for last data received", + "type": "object", + "properties": { + "name": { + "description": "Name of the data type to show in the graph. can be use with {{graphQueriesTableName}} placeholder", + "type": "string" + }, + "lastDataReceivedQuery": { + "description": "Query for indicate last data received", + "type": "string" + } + } + }, + "Permissions": { + "description": "Permissions required for the connector", + "x-ms-identifiers": [], + "type": "object", + "properties": { + "resourceProvider": { + "description": "Resource provider permissions required for the connector", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ResourceProvider" + } + ] + }, + "type": "array" + }, + "customs": { + "description": "Customs permissions required for the connector", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Customs" + } + ] + }, + "type": "array" + } + } + }, + "Customs": { + "description": "Customs permissions required for the connector", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CustomsPermission" + } + ] + }, + "CustomsPermission": { + "description": "Customs permissions required for the connector", + "type": "object", + "properties": { + "name": { + "description": "Customs permissions name", + "type": "string" + }, + "description": { + "description": "Customs permissions description", + "type": "string" + } + } + }, + "ResourceProvider": { + "description": "Resource provider permissions required for the connector", + "type": "object", + "properties": { + "provider": { + "description": "Provider name", + "enum": [ + "Microsoft.OperationalInsights/solutions", + "Microsoft.OperationalInsights/workspaces", + "Microsoft.OperationalInsights/workspaces/datasources", + "microsoft.aadiam/diagnosticSettings", + "Microsoft.OperationalInsights/workspaces/sharedKeys", + "Microsoft.Authorization/policyAssignments" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ProviderName" + } + }, + "permissionsDisplayText": { + "description": "Permission description text", + "type": "string" + }, + "providerDisplayName": { + "description": "Permission provider display name", + "type": "string" + }, + "scope": { + "description": "Permission provider scope", + "enum": [ + "ResourceGroup", + "Subscription", + "Workspace" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "PermissionProviderScope" + } + }, + "requiredPermissions": { + "description": "Required permissions for the connector", + "$ref": "#/definitions/RequiredPermissions" + } + } + }, + "InstructionSteps": { + "description": "Instruction steps to enable the connector", + "type": "object", + "properties": { + "title": { + "description": "Instruction step title", + "type": "string" + }, + "description": { + "description": "Instruction step description", + "type": "string" + }, + "instructions": { + "description": "Instruction step details", + "x-ms-identifiers": [], + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ConnectorInstructionModelBase" + } + ] + }, + "type": "array" + } + } + }, + "ConnectorInstructionModelBase": { + "description": "Instruction step details", + "type": "object", + "properties": { + "parameters": { + "type": "object", + "description": "The parameters for the setting" + }, + "type": { + "description": "The kind of the setting", + "enum": [ + "CopyableLabel", + "InstructionStepsGroup", + "InfoMessage" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "SettingType" + } + } + }, + "required": [ + "type" + ] + }, + "RequiredPermissions": { + "description": "Required permissions for the connector", + "type": "object", + "properties": { + "action": { + "description": "action permission", + "type": "boolean" + }, + "write": { + "description": "write permission", + "type": "boolean" + }, + "read": { + "description": "read permission", + "type": "boolean" + }, + "delete": { + "description": "delete permission", + "type": "boolean" + } + } + }, + "Availability": { + "description": "Connector Availability Status", + "type": "object", + "properties": { + "status": { + "description": "The connector Availability Status", + "format": "int32", + "type": "integer", + "enum": [ + 1 + ], + "x-ms-enum": { + "name": "AvailabilityStatus", + "values": [ + { + "value": 1, + "description": "Available" + } + ] + } + }, + "isPreview": { + "description": "Set connector as preview", + "type": "boolean" + } + } + }, + "ConnectivityCriteria": { + "description": "Setting for the connector check connectivity", + "type": "object", + "properties": { + "type": { + "description": "type of connectivity", + "enum": [ + "IsConnectedQuery" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ConnectivityType" + } + }, + "value": { + "description": "Queries for checking connectivity", + "x-ms-identifiers": [], + "type": "array", + "items": { + "description": "checking connectivity query", + "type": "string" + } + } + } + }, + "SampleQueries": { + "description": "The sample queries for the connector", + "type": "object", + "properties": { + "description": { + "description": "The sample query description", + "type": "string" + }, + "query": { + "description": "the sample query", + "type": "string" + } + } + }, + "GraphQueries": { + "type": "object", + "description": "The graph query to show the current data status", + "properties": { + "metricName": { + "description": "the metric that the query is checking", + "type": "string" + }, + "legend": { + "description": "The legend for the graph", + "type": "string" + }, + "baseQuery": { + "description": "The base query for the graph", + "type": "string" + } + } + } + }, + "parameters": { + "DataConnector": { + "description": "The data connector", + "in": "body", + "name": "dataConnector", + "required": true, + "schema": { + "$ref": "#/definitions/DataConnector" + }, + "x-ms-parameter-location": "method" + }, + "DataConnectorId": { + "description": "Connector ID", + "in": "path", + "name": "dataConnectorId", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DataConnectorConnectBody": { + "description": "The data connector", + "in": "body", + "name": "connectBody", + "required": true, + "schema": { + "$ref": "#/definitions/DataConnectorConnectBody" + }, + "x-ms-parameter-location": "method" + }, + "DataConnectorsCheckRequirementsBody": { + "description": "The parameters for requirements check message", + "in": "body", + "name": "DataConnectorsCheckRequirements", + "required": true, + "schema": { + "$ref": "#/definitions/DataConnectorsCheckRequirements" + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/CreateActionOfAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/CreateActionOfAlertRule.json new file mode 100644 index 000000000000..ec0e527f95ae --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/CreateActionOfAlertRule.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "actionId": "912bec42-cb66-4c03-ac63-1761b6898c3e", + "action": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "triggerUri": "https://prod-31.northcentralus.logic.azure.com:443/workflows/cd3765391efd48549fd7681ded1d48d7/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=signature", + "logicAppResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/MyAlerts" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5/actions/912bec42-cb66-4c03-ac63-1761b6898c3e", + "name": "912bec42-cb66-4c03-ac63-1761b6898c3e", + "type": "Microsoft.SecurityInsights/alertRules/actions", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "workflowId": "cd3765391efd48549fd7681ded1d48d7", + "logicAppResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/MyAlerts" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5/actions/912bec42-cb66-4c03-ac63-1761b6898c3e", + "name": "912bec42-cb66-4c03-ac63-1761b6898c3e", + "type": "Microsoft.SecurityInsights/alertRules/actions", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "workflowId": "cd3765391efd48549fd7681ded1d48d7", + "logicAppResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/MyAlerts" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/DeleteActionOfAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/DeleteActionOfAlertRule.json new file mode 100644 index 000000000000..b99161b07126 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/DeleteActionOfAlertRule.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "actionId": "912bec42-cb66-4c03-ac63-1761b6898c3e" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetActionOfAlertRuleById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetActionOfAlertRuleById.json new file mode 100644 index 000000000000..04ccf8e75e23 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetActionOfAlertRuleById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "actionId": "912bec42-cb66-4c03-ac63-1761b6898c3e" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5/actions/912bec42-cb66-4c03-ac63-1761b6898c3e", + "name": "912bec42-cb66-4c03-ac63-1761b6898c3e", + "type": "Microsoft.SecurityInsights/alertRules/actions", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "workflowId": "cd3765391efd48549fd7681ded1d48d7", + "logicAppResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/MyAlerts" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetAllActionsByAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetAllActionsByAlertRule.json new file mode 100644 index 000000000000..24188522233c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/actions/GetAllActionsByAlertRule.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5/actions/912bec42-cb66-4c03-ac63-1761b6898c3e", + "name": "912bec42-cb66-4c03-ac63-1761b6898c3e", + "type": "Microsoft.SecurityInsights/alertRules/actions", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "workflowId": "cd3765391efd48549fd7681ded1d48d7", + "logicAppResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/MyAlerts" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplateById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplateById.json new file mode 100644 index 000000000000..191fac48a791 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplateById.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "alertRuleTemplateId": "65360bb0-8986-4ade-a89d-af3cf44d28aa" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRuleTemplates/65360bb0-8986-4ade-a89d-af3cf44d28aa", + "name": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "type": "Microsoft.SecurityInsights/AlertRuleTemplates", + "kind": "Scheduled", + "properties": { + "severity": "Low", + "query": "let timeframe = 1d;\nAWSCloudTrail\n| where TimeGenerated >= ago(timeframe)\n| where EventName == \"CreateNetworkAclEntry\"\n or EventName == \"CreateRoute\"\n| project TimeGenerated, EventName, EventTypeName, UserIdentityAccountId, UserIdentityPrincipalid, UserAgent, UserIdentityUserName, SessionMfaAuthenticated, SourceIpAddress, AWSRegion, EventSource, AdditionalEventData, ResponseElements\n| extend AccountCustomEntity = UserIdentityUserName, IPCustomEntity = SourceIpAddress", + "queryFrequency": "P1D", + "queryPeriod": "P1D", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "displayName": "Changes to Amazon VPC settings", + "description": "This alert monitors changes to Amazon VPC (Virtual Private Cloud) settings such as new ACL entries and routes in route tables.\nMore information: https://medium.com/@GorillaStack/the-most-important-aws-cloudtrail-security-events-to-track-a5b9873f8255 \nand https://aws.amazon.com/vpc/", + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "tactics": [ + "PrivilegeEscalation", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "lastUpdatedDateUTC": "2020-02-27T00:00:00Z", + "version": "1.0.2", + "createdDateUTC": "2019-02-27T00:00:00Z", + "status": "Available", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "alertRulesCreatedByTemplateCount": 0 + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplates.json new file mode 100644 index 000000000000..77c2dba7b0bd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRuleTemplates/GetAlertRuleTemplates.json @@ -0,0 +1,238 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/AlertRuleTemplates/65360bb0-8986-4ade-a89d-af3cf44d28aa", + "name": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "type": "Microsoft.SecurityInsights/AlertRuleTemplates", + "kind": "Scheduled", + "properties": { + "severity": "Low", + "query": "let timeframe = 1d;\nAWSCloudTrail\n| where TimeGenerated >= ago(timeframe)\n| where EventName == \"CreateNetworkAclEntry\"\n or EventName == \"CreateRoute\"\n| project TimeGenerated, EventName, EventTypeName, UserIdentityAccountId, UserIdentityPrincipalid, UserAgent, UserIdentityUserName, SessionMfaAuthenticated, SourceIpAddress, AWSRegion, EventSource, AdditionalEventData, ResponseElements\n| extend AccountCustomEntity = UserIdentityUserName, IPCustomEntity = SourceIpAddress", + "queryFrequency": "P1D", + "queryPeriod": "P1D", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "displayName": "Changes to Amazon VPC settings", + "description": "This alert monitors changes to Amazon VPC (Virtual Private Cloud) settings such as new ACL entries and routes in route tables.\nMore information: https://medium.com/@GorillaStack/the-most-important-aws-cloudtrail-security-events-to-track-a5b9873f8255 \nand https://aws.amazon.com/vpc/", + "tactics": [ + "PrivilegeEscalation", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "lastUpdatedDateUTC": "2020-02-27T00:00:00Z", + "createdDateUTC": "2019-02-27T00:00:00Z", + "status": "Available", + "version": "1.0.1", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "alertRulesCreatedByTemplateCount": 0 + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/AlertRuleTemplates/f71aba3d-28fb-450b-b192-4e76a83015c8", + "name": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "type": "Microsoft.SecurityInsights/AlertRuleTemplates", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Microsoft Sentinel uses Fusion, a correlation engine based on scalable machine learning algorithms, to automatically detect multistage attacks by identifying combinations of anomalous behaviors and suspicious activities that are observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nSince Fusion correlates multiple signals from various products to detect advanced multistage attacks, successful Fusion detections are presented as Fusion incidents on the Microsoft Sentinel Incidents page. This rule covers the following detections:\n- Fusion for emerging threats\n- Fusion for ransomware\n- Scenario-based Fusion detections (122 scenarios)\n\nTo enable these detections, we recommend you configure the following data connectors for best results:\n- Out-of-the-box anomaly detections\n- Azure Active Directory Identity Protection\n- Azure Defender\n- Azure Defender for IoT\n- Microsoft 365 Defender\n- Microsoft Cloud App Security \n- Microsoft Defender for Endpoint\n- Microsoft Defender for Identity\n- Microsoft Defender for Office 365\n- Palo Alto Networks\n- Scheduled analytics rules, both built-in and those created by your security analysts. Analytics rules must contain kill-chain (tactics) and entity mapping information in order to be used by Fusion.\n\nFor the full description of each detection that is supported by Fusion, go to https://aka.ms/SentinelFusion.", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "severityFilter": { + "enabled": true, + "isSupported": true, + "severityFilters": [ + "Informational", + "Low", + "Medium", + "High" + ] + } + } + ] + }, + { + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "severityFilter": { + "enabled": false, + "isSupported": false, + "severityFilters": null + } + } + ] + } + ], + "lastUpdatedDateUTC": "2021-06-09T00:00:00Z", + "createdDateUTC": "2019-07-25T00:00:00Z", + "status": "Available", + "severity": "High", + "alertRulesCreatedByTemplateCount": 0 + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/AlertRuleTemplates/b3cfc7c0-092c-481c-a55b-34a3979758cb", + "name": "b3cfc7c0-092c-481c-a55b-34a3979758cb", + "type": "Microsoft.SecurityInsights/AlertRuleTemplates", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "displayName": "Create incidents based on Microsoft Cloud App Security alerts", + "description": "Create incidents based on all alerts generated in Microsoft Cloud App Security", + "lastUpdatedDateUTC": "2020-02-27T00:00:00Z", + "createdDateUTC": "2019-07-16T00:00:00Z", + "status": "Available", + "alertRulesCreatedByTemplateCount": 0 + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRule.json new file mode 100644 index 000000000000..322e5397a732 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRule.json @@ -0,0 +1,845 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "myFirstFusionRule", + "alertRule": { + "kind": "Fusion", + "etag": "3d00c3ca-0000-0100-0000-5d42d5010000", + "properties": { + "enabled": true, + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "filters": null + } + } + ] + } + ], + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Using Fusion technology based on machine learning, Azure Sentinel automatically detects multistage attacks by identifying combinations of anomalous behaviors and suspicious activities observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nThere are a total of 122 Fusion incident types detected by Azure Sentinel.\n\nTo detect these multistage attacks, the following data connectors must be configured:\n- Azure Active Directory Identity Protection.\n- Microsoft Cloud App Security.\n- Microsoft Defender for Endpoint.\n- Azure Defender.\n- Palo Alto Networks.\n- Scheduled Analytics Rules supported by Fusion\n\nFor a full list and description of each scenario that is supported for these multistage attacks, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2019-09-04T13:13:11.5340061Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Using Fusion technology based on machine learning, Azure Sentinel automatically detects multistage attacks by identifying combinations of anomalous behaviors and suspicious activities observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nThere are a total of 122 Fusion incident types detected by Azure Sentinel.\n\nTo detect these multistage attacks, the following data connectors must be configured:\n- Azure Active Directory Identity Protection.\n- Microsoft Cloud App Security.\n- Microsoft Defender for Endpoint.\n- Azure Defender.\n- Palo Alto Networks.\n- Scheduled Analytics Rules supported by Fusion\n\nFor a full list and description of each scenario that is supported for these multistage attacks, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2019-09-04T13:13:11.5340061Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRuleWithFusionScenarioExclusion.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRuleWithFusionScenarioExclusion.json new file mode 100644 index 000000000000..d8a25a27e877 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateFusionAlertRuleWithFusionScenarioExclusion.json @@ -0,0 +1,851 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "myFirstFusionRule", + "alertRule": { + "kind": "Fusion", + "etag": "3d00c3ca-0000-0100-0000-5d42d5010000", + "properties": { + "enabled": true, + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "filters": null + } + } + ] + } + ], + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Using Fusion technology based on machine learning, Azure Sentinel automatically detects multistage attacks by identifying combinations of anomalous behaviors and suspicious activities observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nThere are a total of 122 Fusion incident types detected by Azure Sentinel.\n\nTo detect these multistage attacks, the following data connectors must be configured:\n- Azure Active Directory Identity Protection.\n- Microsoft Cloud App Security.\n- Microsoft Defender for Endpoint.\n- Azure Defender.\n- Palo Alto Networks.\n- Scheduled Analytics Rules supported by Fusion\n\nFor a full list and description of each scenario that is supported for these multistage attacks, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2019-09-04T13:13:11.5340061Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Using Fusion technology based on machine learning, Azure Sentinel automatically detects multistage attacks by identifying combinations of anomalous behaviors and suspicious activities observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nThere are a total of 122 Fusion incident types detected by Azure Sentinel.\n\nTo detect these multistage attacks, the following data connectors must be configured:\n- Azure Active Directory Identity Protection.\n- Microsoft Cloud App Security.\n- Microsoft Defender for Endpoint.\n- Azure Defender.\n- Palo Alto Networks.\n- Scheduled Analytics Rules supported by Fusion\n\nFor a full list and description of each scenario that is supported for these multistage attacks, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "scenarioExclusionPatterns": [ + { + "exclusionPattern": "Alert providers:Azure Active Directory Identity Protection:Infected Device;Alert providers:Azure Defender:Crypto-mining activity", + "dateAddedInUTC": "2021-10-01T15:26:44.9429806Z" + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2019-09-04T13:13:11.5340061Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateMicrosoftSecurityIncidentCreationAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateMicrosoftSecurityIncidentCreationAlertRule.json new file mode 100644 index 000000000000..6babcf444390 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateMicrosoftSecurityIncidentCreationAlertRule.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "microsoftSecurityIncidentCreationRuleExample", + "alertRule": { + "etag": "\"260097e0-0000-0d00-0000-5d6fa88f0000\"", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "displayName": "testing displayname", + "enabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExample", + "name": "microsoftSecurityIncidentCreationRuleExample", + "etag": "\"260097e0-0000-0d00-0000-5d6fa88f0000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "severitiesFilter": null, + "displayNamesFilter": null, + "displayName": "testing displayname", + "enabled": true, + "description": null, + "alertRuleTemplateName": null, + "lastModifiedUtc": "2019-09-04T12:05:35.7296311Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExample", + "name": "microsoftSecurityIncidentCreationRuleExample", + "etag": "\"260097e0-0000-0d00-0000-5d6fa88f0000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "severitiesFilter": null, + "displayNamesFilter": null, + "displayName": "testing displayname", + "enabled": true, + "description": null, + "alertRuleTemplateName": null, + "lastModifiedUtc": "2019-09-04T12:05:35.7296311Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateNrtAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateNrtAlertRule.json new file mode 100644 index 000000000000..2ccda0ed6bc7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateNrtAlertRule.json @@ -0,0 +1,136 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "alertRule": { + "kind": "NRT", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "Rule2", + "description": "", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "ProtectionStatus | extend HostCustomEntity = Computer | extend IPCustomEntity = ComputerIP_Hidden", + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host", + "Account" + ] + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "NRT", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "Rule2", + "description": "", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "ProtectionStatus | extend HostCustomEntity = Computer | extend IPCustomEntity = ComputerIP_Hidden", + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "lastModifiedUtc": "2019-01-01T13:15:30Z", + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host", + "Account" + ] + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "NRT", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "Rule2", + "description": "", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "ProtectionStatus | extend HostCustomEntity = Computer | extend IPCustomEntity = ComputerIP_Hidden", + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "lastModifiedUtc": "2019-01-01T13:15:30Z", + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host", + "Account" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateScheduledAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateScheduledAlertRule.json new file mode 100644 index 000000000000..31c166e798b0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/CreateScheduledAlertRule.json @@ -0,0 +1,270 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "alertRule": { + "kind": "Scheduled", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My scheduled rule", + "description": "An example for a scheduled rule", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "Heartbeat", + "queryFrequency": "PT1H", + "queryPeriod": "P2DT1H30M", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "customDetails": { + "OperatingSystemName": "OSName", + "OperatingSystemType": "OSType" + }, + "entityMappings": [ + { + "entityType": "Host", + "fieldMappings": [ + { + "identifier": "FullName", + "columnName": "Computer" + } + ] + }, + { + "entityType": "IP", + "fieldMappings": [ + { + "identifier": "Address", + "columnName": "ComputerIP" + } + ] + } + ], + "sentinelEntitiesMappings": [ + { + "columnName": "Entities" + } + ], + "alertDetailsOverride": { + "alertDisplayNameFormat": "Alert from {{Computer}}", + "alertDescriptionFormat": "Suspicious activity was made by {{ComputerIP}}", + "alertDynamicProperties": [ + { + "alertProperty": "ProductComponentName", + "value": "ProductComponentNameCustomColumn" + }, + { + "alertProperty": "ProductName", + "value": "ProductNameCustomColumn" + }, + { + "alertProperty": "AlertLink", + "value": "Link" + } + ] + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host" + ], + "groupByAlertDetails": [ + "DisplayName" + ], + "groupByCustomDetails": [ + "OperatingSystemType", + "OperatingSystemName" + ] + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Scheduled", + "etag": "\"01005144-0000-0d00-0000-6058632c0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "My scheduled rule", + "description": "An example for a scheduled rule", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "Heartbeat", + "queryFrequency": "PT1H", + "queryPeriod": "P2DT1H30M", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "lastModifiedUtc": "2021-03-01T13:17:30Z", + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "customDetails": { + "OperatingSystemName": "OSName", + "OperatingSystemType": "OSType" + }, + "entityMappings": [ + { + "entityType": "Host", + "fieldMappings": [ + { + "identifier": "FullName", + "columnName": "Computer" + } + ] + }, + { + "entityType": "IP", + "fieldMappings": [ + { + "identifier": "Address", + "columnName": "ComputerIP" + } + ] + } + ], + "alertDetailsOverride": { + "alertDisplayNameFormat": "Alert from {{Computer}}", + "alertDescriptionFormat": "Suspicious activity was made by {{ComputerIP}}", + "alertTacticsColumnName": null, + "alertSeverityColumnName": null + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host" + ], + "groupByAlertDetails": [ + "DisplayName" + ], + "groupByCustomDetails": [ + "OperatingSystemType", + "OperatingSystemName" + ] + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Scheduled", + "etag": "\"01007444-0000-0d00-0000-605863a70000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "My scheduled rule", + "description": "An example for a scheduled rule", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "Heartbeat", + "queryFrequency": "PT1H", + "queryPeriod": "P2DT1H30M", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "lastModifiedUtc": "2021-03-01T13:15:30Z", + "customDetails": { + "OperatingSystemName": "OSName", + "OperatingSystemType": "OSType" + }, + "entityMappings": [ + { + "entityType": "Host", + "fieldMappings": [ + { + "identifier": "FullName", + "columnName": "Computer" + } + ] + }, + { + "entityType": "IP", + "fieldMappings": [ + { + "identifier": "Address", + "columnName": "ComputerIP" + } + ] + } + ], + "alertDetailsOverride": { + "alertDisplayNameFormat": "Alert from {{Computer}}", + "alertDescriptionFormat": "Suspicious activity was made by {{ComputerIP}}", + "alertTacticsColumnName": null, + "alertSeverityColumnName": null + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host" + ], + "groupByAlertDetails": [ + "DisplayName" + ], + "groupByCustomDetails": [ + "OperatingSystemType", + "OperatingSystemName" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/DeleteAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/DeleteAlertRule.json new file mode 100644 index 000000000000..9a3bba2bd457 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/DeleteAlertRule.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetAllAlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetAllAlertRules.json new file mode 100644 index 000000000000..ccfb3cd294b6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetAllAlertRules.json @@ -0,0 +1,412 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Scheduled", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "My scheduled rule", + "description": "An example for a scheduled rule", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "Heartbeat", + "queryFrequency": "PT1H", + "queryPeriod": "P2DT1H30M", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "lastModifiedUtc": "2021-03-01T13:17:30Z", + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "customDetails": { + "OperatingSystemName": "OSName", + "OperatingSystemType": "OSType" + }, + "entityMappings": [ + { + "entityType": "Host", + "fieldMappings": [ + { + "identifier": "FullName", + "columnName": "Computer" + } + ] + }, + { + "entityType": "IP", + "fieldMappings": [ + { + "identifier": "Address", + "columnName": "ComputerIP" + } + ] + } + ], + "alertDetailsOverride": { + "alertDisplayNameFormat": "Alert from {{Computer}}", + "alertDescriptionFormat": "Suspicious activity was made by {{ComputerIP}}", + "alertTacticsColumnName": null, + "alertSeverityColumnName": null + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host" + ], + "groupByAlertDetails": [ + "DisplayName" + ], + "groupByCustomDetails": [ + "OperatingSystemType", + "OperatingSystemName" + ] + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExample", + "name": "microsoftSecurityIncidentCreationRuleExample", + "etag": "\"260097e0-0000-0d00-0000-5d6fa88f0000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "severitiesFilter": null, + "displayNamesFilter": null, + "displayName": "testing displayname", + "enabled": true, + "description": null, + "alertRuleTemplateName": null, + "lastModifiedUtc": "2019-09-04T12:05:35.7296311Z" + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"25005c11-0000-0d00-0000-5d6cc0e20000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Microsoft Sentinel uses Fusion, a correlation engine based on scalable machine learning algorithms, to automatically detect multistage attacks by identifying combinations of anomalous behaviors and suspicious activities that are observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nSince Fusion correlates multiple signals from various products to detect advanced multistage attacks, successful Fusion detections are presented as Fusion incidents on the Microsoft Sentinel Incidents page. This rule covers the following detections:\n- Fusion for emerging threats\n- Fusion for ransomware\n- Scenario-based Fusion detections (122 scenarios)\n\nTo enable these detections, we recommend you configure the following data connectors for best results:\n- Out-of-the-box anomaly detections\n- Azure Active Directory Identity Protection\n- Azure Defender\n- Azure Defender for IoT\n- Microsoft 365 Defender\n- Microsoft Cloud App Security \n- Microsoft Defender for Endpoint\n- Microsoft Defender for Identity\n- Microsoft Defender for Office 365\n- Palo Alto Networks\n- Scheduled analytics rules, both built-in and those created by your security analysts. Analytics rules must contain kill-chain (tactics) and entity mapping information in order to be used by Fusion.\n\nFor the full description of each detection that is supported by Fusion, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "sourceSubTypeDisplayName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "sourceSubTypeDisplayName": "Microsoft Defender for Cloud", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "sourceSubTypeDisplayName": "Microsoft Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "sourceSubTypeDisplayName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "sourceSubTypeDisplayName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "sourceSubTypeDisplayName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "sourceSubTypeDisplayName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "sourceSubTypeDisplayName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "sourceSubTypeDisplayName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "sourceSubTypeDisplayName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2021-10-22T07:12:34.9065092Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetFusionAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetFusionAlertRule.json new file mode 100644 index 000000000000..272a6a6aa10b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetFusionAlertRule.json @@ -0,0 +1,310 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "myFirstFusionRule" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/myFirstFusionRule", + "name": "myFirstFusionRule", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Fusion", + "properties": { + "displayName": "Advanced Multi-Stage Attack Detection", + "description": "Microsoft Sentinel uses Fusion, a correlation engine based on scalable machine learning algorithms, to automatically detect multistage attacks by identifying combinations of anomalous behaviors and suspicious activities that are observed at various stages of the kill chain. On the basis of these discoveries, Azure Sentinel generates incidents that would otherwise be very difficult to catch. By design, these incidents are low-volume, high-fidelity, and high-severity, which is why this detection is turned ON by default.\n\nSince Fusion correlates multiple signals from various products to detect advanced multistage attacks, successful Fusion detections are presented as Fusion incidents on the Microsoft Sentinel Incidents page. This rule covers the following detections:\n- Fusion for emerging threats\n- Fusion for ransomware\n- Scenario-based Fusion detections (122 scenarios)\n\nTo enable these detections, we recommend you configure the following data connectors for best results:\n- Out-of-the-box anomaly detections\n- Azure Active Directory Identity Protection\n- Azure Defender\n- Azure Defender for IoT\n- Microsoft 365 Defender\n- Microsoft Cloud App Security \n- Microsoft Defender for Endpoint\n- Microsoft Defender for Identity\n- Microsoft Defender for Office 365\n- Palo Alto Networks\n- Scheduled analytics rules, both built-in and those created by your security analysts. Analytics rules must contain kill-chain (tactics) and entity mapping information in order to be used by Fusion.\n\nFor the full description of each detection that is supported by Fusion, go to https://aka.ms/SentinelFusion.", + "alertRuleTemplateName": "f71aba3d-28fb-450b-b192-4e76a83015c8", + "tactics": [ + "Collection", + "CommandAndControl", + "CredentialAccess", + "DefenseEvasion", + "Discovery", + "Execution", + "Exfiltration", + "Impact", + "InitialAccess", + "LateralMovement", + "Persistence", + "PrivilegeEscalation" + ], + "sourceSettings": [ + { + "enabled": true, + "sourceName": "Anomalies", + "sourceSubTypes": null + }, + { + "enabled": true, + "sourceName": "Alert providers", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Azure Active Directory Identity Protection", + "sourceSubTypeDisplayName": "Azure Active Directory Identity Protection", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender", + "sourceSubTypeDisplayName": "Microsoft Defender for Cloud", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Defender for IoT", + "sourceSubTypeDisplayName": "Microsoft Defender for IoT", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft 365 Defender", + "sourceSubTypeDisplayName": "Microsoft 365 Defender", + "enabled": true, + "severityFilter": [ + "High", + "Medium", + "Low", + "Informational" + ], + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Cloud App Security", + "sourceSubTypeDisplayName": "Microsoft Cloud App Security", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Endpoint", + "sourceSubTypeDisplayName": "Microsoft Defender for Endpoint", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Identity", + "sourceSubTypeDisplayName": "Microsoft Defender for Identity", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Microsoft Defender for Office 365", + "sourceSubTypeDisplayName": "Microsoft Defender for Office 365", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + }, + { + "sourceSubTypeName": "Azure Sentinel scheduled analytics rules", + "sourceSubTypeDisplayName": "Azure Sentinel scheduled analytics rules", + "enabled": true, + "severityFilters": { + "isSupported": true, + "filters": [ + { + "severity": "High", + "enabled": true + }, + { + "severity": "Medium", + "enabled": true + }, + { + "severity": "Low", + "enabled": true + }, + { + "severity": "Informational", + "enabled": true + } + ] + } + } + ] + }, + { + "enabled": true, + "sourceName": "Raw logs from other sources", + "sourceSubTypes": [ + { + "sourceSubTypeName": "Palo Alto Networks", + "sourceSubTypeDisplayName": "Palo Alto Networks", + "enabled": true, + "severityFilters": { + "isSupported": false, + "filters": null + } + } + ] + } + ], + "severity": "High", + "enabled": true, + "lastModifiedUtc": "2021-10-20T13:13:11.5340061Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetMicrosoftSecurityIncidentCreationAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetMicrosoftSecurityIncidentCreationAlertRule.json new file mode 100644 index 000000000000..44dcf143b9c1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetMicrosoftSecurityIncidentCreationAlertRule.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "microsoftSecurityIncidentCreationRuleExample" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExample", + "name": "microsoftSecurityIncidentCreationRuleExample", + "etag": "\"260097e0-0000-0d00-0000-5d6fa88f0000\"", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "MicrosoftSecurityIncidentCreation", + "properties": { + "productFilter": "Microsoft Cloud App Security", + "severitiesFilter": null, + "displayNamesFilter": null, + "displayName": "testing displayname", + "enabled": true, + "description": null, + "alertRuleTemplateName": null, + "lastModifiedUtc": "2019-09-04T12:05:35.7296311Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetNrtAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetNrtAlertRule.json new file mode 100644 index 000000000000..b813c9d41f27 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetNrtAlertRule.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "NRT", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "Rule2", + "description": "", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "ProtectionStatus | extend HostCustomEntity = Computer | extend IPCustomEntity = ComputerIP_Hidden", + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "lastModifiedUtc": "2019-01-01T13:15:30Z", + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host", + "Account" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetScheduledAlertRule.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetScheduledAlertRule.json new file mode 100644 index 000000000000..9f5c43ed97d6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/alertRules/GetScheduledAlertRule.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/alertRules", + "kind": "Scheduled", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "alertRuleTemplateName": null, + "displayName": "My scheduled rule", + "description": "An example for a scheduled rule", + "severity": "High", + "enabled": true, + "tactics": [ + "Persistence", + "LateralMovement" + ], + "techniques": [ + "T1037", + "T1021" + ], + "query": "Heartbeat", + "queryFrequency": "PT1H", + "queryPeriod": "P2DT1H30M", + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "lastModifiedUtc": "2021-03-01T13:17:30Z", + "eventGroupingSettings": { + "aggregationKind": "AlertPerResult" + }, + "customDetails": { + "OperatingSystemName": "OSName", + "OperatingSystemType": "OSType" + }, + "entityMappings": [ + { + "entityType": "Host", + "fieldMappings": [ + { + "identifier": "FullName", + "columnName": "Computer" + } + ] + }, + { + "entityType": "IP", + "fieldMappings": [ + { + "identifier": "Address", + "columnName": "ComputerIP" + } + ] + } + ], + "alertDetailsOverride": { + "alertDisplayNameFormat": "Alert from {{Computer}}", + "alertDescriptionFormat": "Suspicious activity was made by {{ComputerIP}}", + "alertTacticsColumnName": null, + "alertSeverityColumnName": null + }, + "incidentConfiguration": { + "createIncident": true, + "groupingConfiguration": { + "enabled": true, + "reopenClosedIncident": false, + "lookbackDuration": "PT5H", + "matchingMethod": "Selected", + "groupByEntities": [ + "Host" + ], + "groupByAlertDetails": [ + "DisplayName" + ], + "groupByCustomDetails": [ + "OperatingSystemType", + "OperatingSystemName" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_CreateOrUpdate.json new file mode 100644 index 000000000000..8cea8cb3b414 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_CreateOrUpdate.json @@ -0,0 +1,195 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "automationRuleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "automationRule": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/automationRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/automationRules", + "properties": { + "displayName": "Suspicious user sign-in events", + "order": 1, + "triggeringLogic": { + "isEnabled": true, + "triggersOn": "Incidents", + "triggersWhen": "Created", + "conditions": [ + { + "conditionType": "PropertyArray", + "conditionProperties": { + "arrayType": "IncidentLabels", + "arrayConditionType": "AnyItem", + "itemConditions": [ + { + "conditionType": "Property", + "conditionProperties": { + "propertyName": "IncidentLabel", + "operator": "Equals", + "propertyValues": [ + "myLabel" + ] + } + } + ] + } + } + ] + }, + "actions": [ + { + "order": 1, + "actionType": "AddIncidentTask", + "actionConfiguration": { + "title": "Reset user passwords", + "description": "Reset passwords for compromised users." + } + } + ], + "lastModifiedTimeUtc": "2019-01-01T13:00:30Z", + "createdTimeUtc": "2019-01-01T13:00:00Z", + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/automationRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/automationRules", + "properties": { + "displayName": "Suspicious user sign-in events", + "order": 1, + "triggeringLogic": { + "isEnabled": true, + "triggersOn": "Incidents", + "triggersWhen": "Created", + "conditions": [ + { + "conditionType": "PropertyArray", + "conditionProperties": { + "arrayType": "IncidentLabels", + "arrayConditionType": "AnyItem", + "itemConditions": [ + { + "conditionType": "Property", + "conditionProperties": { + "propertyName": "IncidentLabel", + "operator": "Equals", + "propertyValues": [ + "myLabel" + ] + } + } + ] + } + } + ] + }, + "actions": [ + { + "order": 1, + "actionType": "AddIncidentTask", + "actionConfiguration": { + "title": "Reset user passwords", + "description": "Reset passwords for compromised users." + } + } + ], + "lastModifiedTimeUtc": "2019-01-01T13:00:30Z", + "createdTimeUtc": "2019-01-01T13:00:00Z", + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/automationRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/automationRules", + "properties": { + "displayName": "Suspicious user sign-in events", + "order": 1, + "triggeringLogic": { + "isEnabled": true, + "triggersOn": "Incidents", + "triggersWhen": "Created", + "conditions": [ + { + "conditionType": "PropertyArray", + "conditionProperties": { + "arrayType": "IncidentLabels", + "arrayConditionType": "AnyItem", + "itemConditions": [ + { + "conditionType": "Property", + "conditionProperties": { + "propertyName": "IncidentLabel", + "operator": "Equals", + "propertyValues": [ + "myLabel" + ] + } + } + ] + } + } + ] + }, + "actions": [ + { + "order": 1, + "actionType": "AddIncidentTask", + "actionConfiguration": { + "title": "Reset user passwords", + "description": "Reset passwords for compromised users." + } + } + ], + "lastModifiedTimeUtc": "2019-01-01T13:00:30Z", + "createdTimeUtc": "2019-01-01T13:00:00Z", + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Delete.json new file mode 100644 index 000000000000..ae94531a14a9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "automationRuleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": {} + }, + "204": { + "body": {} + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Get.json new file mode 100644 index 000000000000..c0a5605f17cc --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_Get.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "automationRuleId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/automationRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/automationRules", + "properties": { + "displayName": "Suspicious user sign-in events", + "order": 1, + "triggeringLogic": { + "isEnabled": true, + "triggersOn": "Incidents", + "triggersWhen": "Created", + "conditions": [ + { + "conditionType": "PropertyArray", + "conditionProperties": { + "arrayType": "IncidentLabels", + "arrayConditionType": "AnyItem", + "itemConditions": [ + { + "conditionType": "Property", + "conditionProperties": { + "propertyName": "IncidentLabel", + "operator": "Equals", + "propertyValues": [ + "myLabel" + ] + } + } + ] + } + } + ] + }, + "actions": [ + { + "order": 1, + "actionType": "AddIncidentTask", + "actionConfiguration": { + "title": "Reset user passwords", + "description": "Reset passwords for compromised users." + } + } + ], + "lastModifiedTimeUtc": "2019-01-01T13:00:30Z", + "createdTimeUtc": "2019-01-01T13:00:00Z", + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_List.json new file mode 100644 index 000000000000..e74b6b91440d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/automationRules/AutomationRules_List.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/automationRules/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/automationRules", + "properties": { + "displayName": "Suspicious user sign-in events", + "order": 1, + "triggeringLogic": { + "isEnabled": true, + "triggersOn": "Incidents", + "triggersWhen": "Created", + "conditions": [ + { + "conditionType": "PropertyArray", + "conditionProperties": { + "arrayType": "IncidentLabels", + "arrayConditionType": "AnyItem", + "itemConditions": [ + { + "conditionType": "Property", + "conditionProperties": { + "propertyName": "IncidentLabel", + "operator": "Equals", + "propertyValues": [ + "myLabel" + ] + } + } + ] + } + } + ] + }, + "actions": [ + { + "order": 1, + "actionType": "AddIncidentTask", + "actionConfiguration": { + "title": "Reset user passwords", + "description": "Reset passwords for compromised users." + } + } + ], + "lastModifiedTimeUtc": "2019-01-01T13:00:30Z", + "createdTimeUtc": "2019-01-01T13:00:00Z", + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetAllBillingStatistics.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetAllBillingStatistics.json new file mode 100644 index 000000000000..59fbcca7ade3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetAllBillingStatistics.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/billingStatistics/sapUsage", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "sapSolutionUsage", + "type": "Microsoft.SecurityInsights/billingStatistics", + "kind": "SapSolutionUsage", + "properties": { + "activeSystemIdCount": 5 + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetBillingStatistic.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetBillingStatistic.json new file mode 100644 index 000000000000..0c934fc1d934 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/billingStatistics/GetBillingStatistic.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "billingStatisticName": "sapSolutionUsage" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/billingStatistics/sapUsage", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "sapSolutionUsage", + "type": "Microsoft.SecurityInsights/billingStatistics", + "kind": "SapSolutionUsage", + "properties": { + "activeSystemIdCount": 5 + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/CreateBookmark.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/CreateBookmark.json new file mode 100644 index 000000000000..c6a5b3299723 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/CreateBookmark.json @@ -0,0 +1,143 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "bookmark": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My bookmark", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70" + }, + "updated": "2021-09-01T13:15:30Z", + "created": "2021-09-01T13:15:30Z", + "notes": "Found a suspicious activity", + "labels": [ + "Tag1", + "Tag2" + ], + "query": "SecurityEvent | where TimeGenerated > ago(1d) and TimeGenerated < ago(2d)", + "queryResult": "Security Event query result", + "tactics": [ + "Execution" + ], + "techniques": [ + "T1609" + ], + "entityMappings": [ + { + "entityType": "Account", + "fieldMappings": [ + { + "identifier": "Fullname", + "value": "johndoe@microsoft.com" + } + ] + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/bookmarks", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My bookmark", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updated": "2021-09-01T13:15:30Z", + "created": "2021-09-01T13:15:30Z", + "notes": "Found a suspicious activity", + "labels": [ + "Tag1", + "Tag2" + ], + "query": "SecurityEvent | where TimeGenerated > ago(1d) and TimeGenerated < ago(2d)", + "queryResult": "Security Event query result", + "tactics": [ + "Execution" + ], + "techniques": [ + "T1609" + ], + "entityMappings": [ + { + "entityType": "Account", + "fieldMappings": [ + { + "identifier": "Fullname", + "value": "johndoe@microsoft.com" + } + ] + } + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/bookmarks", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My bookmark", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updated": "2021-09-01T13:15:30Z", + "created": "2021-09-01T13:15:30Z", + "notes": "Found a suspicious activity", + "labels": [ + "Tag1", + "Tag2" + ], + "query": "SecurityEvent | where TimeGenerated > ago(1d) and TimeGenerated < ago(2d)", + "queryResult": "Security Event query result", + "tactics": [ + "Execution" + ], + "techniques": [ + "T1609" + ], + "entityMappings": [ + { + "entityType": "Account", + "fieldMappings": [ + { + "identifier": "Fullname", + "value": "johndoe@microsoft.com" + } + ] + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/DeleteBookmark.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/DeleteBookmark.json new file mode 100644 index 000000000000..5046ff391c24 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/DeleteBookmark.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarkById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarkById.json new file mode 100644 index 000000000000..a7e0a73f4bb9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarkById.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/bookmarks", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My bookmark", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updated": "2021-09-01T13:15:30Z", + "created": "2021-09-01T13:15:30Z", + "notes": "Found a suspicious activity", + "labels": [ + "Tag1", + "Tag2" + ], + "query": "SecurityEvent | where TimeGenerated > ago(1d) and TimeGenerated < ago(2d)", + "queryResult": "Security Event query result", + "incidentInfo": { + "incidentId": "DDA55F97-170B-40B9-B8ED-CBFD05481E7D", + "severity": "Low", + "title": "New case 1", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0018" + }, + "tactics": [ + "Execution" + ], + "techniques": [ + "T1609" + ], + "entityMappings": [ + { + "entityType": "Account", + "fieldMappings": [ + { + "identifier": "Fullname", + "value": "johndoe@microsoft.com" + } + ] + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarks.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarks.json new file mode 100644 index 000000000000..3f5065a3e94a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/GetBookmarks.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/bookmarks", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My bookmark", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updated": "2021-09-01T13:15:30Z", + "created": "2021-09-01T13:15:30Z", + "notes": "Found a suspicious activity", + "labels": [ + "Tag1", + "Tag2" + ], + "query": "SecurityEvent | where TimeGenerated > ago(1d) and TimeGenerated < ago(2d)", + "queryResult": "Security Event query result", + "incidentInfo": { + "incidentId": "DDA55F97-170B-40B9-B8ED-CBFD05481E7D", + "severity": "Low", + "title": "New case 1", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0018" + }, + "tactics": [ + "Execution" + ], + "techniques": [ + "T1609" + ], + "entityMappings": [ + { + "entityType": "Account", + "fieldMappings": [ + { + "identifier": "Fullname", + "value": "johndoe@microsoft.com" + } + ] + } + ] + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/expand/PostExpandBookmark.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/expand/PostExpandBookmark.json new file mode 100644 index 000000000000..c517993835ed --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/expand/PostExpandBookmark.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "parameters": { + "expansionId": "27f76e63-c41b-480f-bb18-12ad2e011d49", + "startTime": "2019-12-25T17:21:00.000Z", + "endTime": "2020-01-24T17:21:00.000Z" + } + }, + "responses": { + "200": { + "body": { + "value": { + "entities": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/fe4ddab5-8cea-eca3-c8b8-9e92e830a387", + "name": "fe4ddab5-8cea-eca3-c8b8-9e92e830a387", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Account", + "properties": { + "friendlyName": "administrator", + "accountName": "administrator", + "ntDomain": "domain" + } + } + ] + }, + "metaData": { + "aggregations": [ + { + "entityKind": "Account", + "count": 1 + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/CreateBookmarkRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/CreateBookmarkRelation.json new file mode 100644 index 000000000000..a50a5d0fbe3c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/CreateBookmarkRelation.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "relation": { + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/bookmarks/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceName": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/bookmarks/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceName": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/DeleteBookmarkRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/DeleteBookmarkRelation.json new file mode 100644 index 000000000000..82caae66b5a3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/DeleteBookmarkRelation.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetAllBookmarkRelations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetAllBookmarkRelations.json new file mode 100644 index 000000000000..ffb7c84dcfb3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetAllBookmarkRelations.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "2216d0e1-91e3-4902-89fd-d2df8c535096" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/bookmarks/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceName": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetBookmarkRelationByName.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetBookmarkRelationByName.json new file mode 100644 index 000000000000..4774edbe06ee --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/bookmarks/relations/GetBookmarkRelationByName.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "bookmarkId": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/bookmarks/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceName": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgent_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgent_Get.json new file mode 100644 index 000000000000..a702a55d93a9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgent_Get.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents", + "properties": { + "configuration": { + "agentContainerName": "MyAgentContainer", + "sdkPath": "/path/to/nwrfc750P_8-70002755.zip", + "sncPath": "/path/to/snc", + "keyVaultResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault", + "keyVaultAuthenticationMode": "ManagedIdentity", + "secretSource": "AzureKeyVault", + "type": "SAP" + }, + "agentSystems": [ + { + "systemResourceName": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "systemDisplayName": "MySystem" + } + ], + "displayName": "MyAgent", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_CreateOrUpdate.json new file mode 100644 index 000000000000..984c36ff95af --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_CreateOrUpdate.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "businessApplicationAgentToUpsert": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "configuration": { + "agentContainerName": "MyAgentContainer", + "sdkPath": "/path/to/nwrfc750P_8-70002755.zip", + "sncPath": "/path/to/snc", + "keyVaultResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault", + "keyVaultAuthenticationMode": "ManagedIdentity", + "secretSource": "AzureKeyVault", + "type": "SAP" + }, + "displayName": "MyAgent" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents", + "properties": { + "configuration": { + "agentContainerName": "MyAgentContainer", + "sdkPath": "/path/to/nwrfc750P_8-70002755.zip", + "sncPath": "/path/to/snc", + "keyVaultResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault", + "keyVaultAuthenticationMode": "ManagedIdentity", + "secretSource": "AzureKeyVault", + "type": "SAP" + }, + "displayName": "MyAgent", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents", + "properties": { + "configuration": { + "agentContainerName": "MyAgentContainer", + "sdkPath": "/path/to/nwrfc750P_8-70002755.zip", + "sncPath": "/path/to/snc", + "keyVaultResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault", + "keyVaultAuthenticationMode": "ManagedIdentity", + "secretSource": "AzureKeyVault", + "type": "SAP" + }, + "displayName": "MyAgent", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_Delete.json new file mode 100644 index 000000000000..5f5ef468a232 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_List.json new file mode 100644 index 000000000000..568e870a2a00 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/BusinessApplicationAgents_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents", + "properties": { + "configuration": { + "agentContainerName": "MyAgentContainer", + "sdkPath": "/path/to/nwrfc750P_8-70002755.zip", + "sncPath": "/path/to/snc", + "keyVaultResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.KeyVault/vaults/myVault", + "keyVaultAuthenticationMode": "ManagedIdentity", + "secretSource": "AzureKeyVault", + "type": "SAP" + }, + "agentSystems": [ + { + "systemResourceName": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "systemDisplayName": "MySystem" + } + ], + "displayName": "MyAgent", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ListActions.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ListActions.json new file mode 100644 index 000000000000..188c835f9f7a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ListActions.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "247b377a-7137-4b3c-bf15-df1d3260ef1b", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "kind": "UnlockUser", + "actionId": "e85000a3-de69-41a4-b347-c6b823e6ec79", + "status": "Pending", + "user": "someuser@someorg.com", + "lastModifiedTimeUtc": "2023-07-01T00:00:00Z" + }, + { + "kind": "LockUser", + "actionId": "56b70fa0-9afd-4916-9ab9-e79de3e24add", + "status": "Pending", + "user": "someuser1@someorg.com", + "lastModifiedTimeUtc": "2024-02-01T00:00:00Z" + }, + { + "kind": "LockUser", + "actionId": "56b70fa0-9afd-4916-9ab9-e79de3e24add", + "status": "Failed", + "user": "someuser1@someorg.com", + "lastModifiedTimeUtc": "2024-02-01T00:00:00Z", + "failureReason": "Some reason for failure" + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ReportActionStatus.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ReportActionStatus.json new file mode 100644 index 000000000000..da8a8894c042 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/ReportActionStatus.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "247b377a-7137-4b3c-bf15-df1d3260ef1b", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "ReportActionStatusPayload": { + "actionId": "81f5d153-4c26-4c64-829a-06df62d1ddc5", + "actionStatus": "Completed", + "failureReason": "Failed to execute the action" + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/UndoAction.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/UndoAction.json new file mode 100644 index 000000000000..9ca993275692 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/actions/UndoAction.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "247b377a-7137-4b3c-bf15-df1d3260ef1b", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "UndoActionPayload": { + "actionId": "e85000a3-de69-41a4-b347-c6b823e6ec79" + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_CreateOrUpdate.json new file mode 100644 index 000000000000..59dd4963188c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_CreateOrUpdate.json @@ -0,0 +1,153 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "agentResourceName": "3123432b-0b60-4af3-8720-77f01a25d34a", + "systemToUpsert": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "status": "Running", + "configuration": { + "azureResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace", + "connector": { + "abapServerHost": "1.1.1.1", + "systemNumber": "001", + "systemId": "A4H", + "client": "001", + "authenticationType": "UsernamePassword", + "type": "Rfc" + }, + "logs": [ + { + "type": "AbapAuditLog", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + }, + { + "type": "USR01", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + } + ], + "type": "SAP" + }, + "displayName": "A4H_System" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/systems/3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "name": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents/systems", + "properties": { + "status": "Running", + "configuration": { + "azureResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace", + "connector": { + "abapServerHost": "1.1.1.1", + "systemNumber": "001", + "systemId": "A4H", + "client": "001", + "authenticationType": "UsernamePassword", + "type": "Rfc" + }, + "logs": [ + { + "type": "AbapAuditLog", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + }, + { + "type": "USR01", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + } + ], + "type": "SAP" + }, + "displayName": "A4H_System", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/systems/3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "name": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents/systems", + "properties": { + "status": "Running", + "configuration": { + "azureResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace", + "connector": { + "abapServerHost": "1.1.1.1", + "systemNumber": "001", + "systemId": "A4H", + "client": "001", + "authenticationType": "UsernamePassword", + "type": "Rfc" + }, + "logs": [ + { + "type": "AbapAuditLog", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + }, + { + "type": "USR01", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + } + ], + "type": "SAP" + }, + "displayName": "A4H_System", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Delete.json new file mode 100644 index 000000000000..bd59ae8d74d2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "agentResourceName": "3123432b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Get.json new file mode 100644 index 000000000000..66734519ef7d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_Get.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "systemResourceName": "3d69632b-0b60-4af3-8720-77f01a25d34a", + "agentResourceName": "3123432b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/systems/3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "name": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents/systems", + "properties": { + "status": "Running", + "configuration": { + "azureResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace", + "connector": { + "abapServerHost": "1.1.1.1", + "systemNumber": "001", + "systemId": "A4H", + "client": "001", + "authenticationType": "UsernamePassword", + "type": "Rfc" + }, + "logs": [ + { + "type": "AbapAuditLog", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + }, + { + "type": "USR01", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + } + ], + "type": "SAP" + }, + "displayName": "A4H_System", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_List.json new file mode 100644 index 000000000000..7019165b0446 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/businessApplicationAgents/systems/Systems_List.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "agentResourceName": "3123432b-0b60-4af3-8720-77f01a25d34a" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/businessApplicationAgents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/systems/3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "name": "3b6bed7b-3f1c-47fc-ab8e-2c57047ed446", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/businessApplicationAgents/systems", + "properties": { + "status": "Running", + "configuration": { + "azureResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace", + "connector": { + "abapServerHost": "1.1.1.1", + "systemNumber": "001", + "systemId": "A4H", + "client": "001", + "authenticationType": "UsernamePassword", + "type": "Rfc" + }, + "logs": [ + { + "type": "AbapAuditLog", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + }, + { + "type": "USR01", + "ingestionType": "Incremental", + "status": "Enabled", + "scheduleInterval": 60, + "bulkSize": 100, + "filters": [ + "filter1", + "filter2" + ] + } + ], + "type": "SAP" + }, + "displayName": "A4H_System", + "lastModifiedTimeUtc": "2024-03-01T13:00:30Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackageById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackageById.json new file mode 100644 index 000000000000..b52e4e8b6455 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackageById.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "packageId": "str.azure-sentinel-solution-str" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "version": "2.0.0", + "displayName": "str" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackages.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackages.json new file mode 100644 index 000000000000..d50a8a430642 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetPackages.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "packageId": "str.azure-sentinel-solution-str" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "contentSchemaVersion": "3.0.0", + "version": "2.0.0", + "displayName": "str" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackageById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackageById.json new file mode 100644 index 000000000000..35fa80cddf91 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackageById.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "packageId": "str.azure-sentinel-solution-str" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentProductPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentproductpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "installedVersion": "2.0.0", + "version": "2.0.0", + "displayName": "str", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01", + "packageContent": "JSON string of the package" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackages.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackages.json new file mode 100644 index 000000000000..d576606d144c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/GetProductPackages.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentProductPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentproductpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "installedVersion": "2.0.0", + "version": "2.0.0", + "displayName": "str", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/InstallPackage.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/InstallPackage.json new file mode 100644 index 000000000000..ab3f9403df12 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/InstallPackage.json @@ -0,0 +1,151 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "packageId": "str.azure-sentinel-solution-str", + "packageInstallationProperties": { + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "version": "2.0.0", + "displayName": "str" + }, + "tags": { + "tag1": "str" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentKind": "Solution", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "installedVersion": "2.0.0", + "version": "2.0.0", + "displayName": "str", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/str.azure-sentinel-solution-str", + "name": "str.azure-sentinel-solution-str", + "type": "Microsoft.SecurityInsights/contentpackages", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "str.azure-sentinel-solution-str", + "contentProductId": "str.azure-sentinel-solution-str-sl-igl6jawr4gwmu", + "contentKind": "Solution", + "installedVersion": "2.0.0", + "version": "2.0.0", + "displayName": "str", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/UninstallPackage.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/UninstallPackage.json new file mode 100644 index 000000000000..d4bbc6b4500d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentPackages/UninstallPackage.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "packageId": "str.azure-sentinel-solution-str" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/DeleteTemplate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/DeleteTemplate.json new file mode 100644 index 000000000000..577040d15677 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/DeleteTemplate.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "templateId": "8365ebfe-a381-45b7-ad08-7d818070e11f" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplateById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplateById.json new file mode 100644 index 000000000000..0e8baa35b33a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplateById.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "templateId": "8365ebfe-a381-45b7-ad08-7d818070e11f" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentProductTemplates/8365ebfe-a381-45b7-ad08-7d818070e11f", + "name": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "type": "Microsoft.SecurityInsights/contentproducttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "contentId", + "version": "1.0.0", + "packageVersion": "1.0.0", + "displayName": "My installed template", + "contentKind": "Workbooks", + "contentProductId": "packageId-wb-rimnsoeh4nt32", + "packageId": "packageId", + "packageKind": "Standalone", + "packageName": "package name", + "source": { + "kind": "Standalone", + "name": "Source name" + }, + "mainTemplate": {} + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplates.json new file mode 100644 index 000000000000..29e517f35c05 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetProductTemplates.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentProductTemplates/8365ebfe-a381-45b7-ad08-7d818070e11f", + "name": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "type": "Microsoft.SecurityInsights/contentproducttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "contentId", + "contentProductId": "packageId-wb-rimnsoeh4nt32", + "version": "1.0.0", + "packageVersion": "1.0.0", + "displayName": "My installed template", + "contentKind": "Workbooks", + "packageId": "packageId", + "packageKind": "Standalone", + "packageName": "package name", + "source": { + "kind": "Standalone", + "name": "Source name" + } + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplateById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplateById.json new file mode 100644 index 000000000000..e85bed063dfb --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplateById.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "templateId": "8365ebfe-a381-45b7-ad08-7d818070e11f" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentTemplates/8365ebfe-a381-45b7-ad08-7d818070e11f", + "name": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "type": "Microsoft.SecurityInsights/contenttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "contentId", + "contentProductId": "packageId-wb-rimnsoeh4nt32", + "version": "1.0.0", + "packageVersion": "1.0.0", + "displayName": "My installed template", + "contentKind": "Workbooks", + "packageId": "packageId", + "source": { + "kind": "Standalone", + "name": "Source name" + }, + "mainTemplate": {} + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplates.json new file mode 100644 index 000000000000..c1fbe81149d3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/GetTemplates.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentTemplates/8365ebfe-a381-45b7-ad08-7d818070e11f", + "name": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "type": "Microsoft.SecurityInsights/contenttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "contentId", + "contentProductId": "packageId-wb-rimnsoeh4nt32", + "packageVersion": "1.0.0", + "version": "1.0.0", + "displayName": "My installed template", + "contentKind": "Workbooks", + "packageId": "packageId", + "source": { + "kind": "Standalone", + "name": "Source name" + } + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/InstallTemplate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/InstallTemplate.json new file mode 100644 index 000000000000..dca3153add10 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/contentTemplates/InstallTemplate.json @@ -0,0 +1,228 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfeab2-9ae0-4464-9919-dccaee2e48f0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "templateId": "str.azure-sentinel-solution-str", + "templateInstallationProperties": { + "properties": { + "contentId": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "contentProductId": "str.azure-sentinel-solution-str-ar-cbfe4fndz66bi", + "displayName": "API Protection workbook template", + "contentKind": "AnalyticsRule", + "version": "1.0.1", + "packageVersion": "1.0.0", + "packageId": "str.azure-sentinel-solution-str", + "packageName": "str", + "packageKind": "Solution", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "mainTemplate": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.1", + "resources": [ + { + "type": "Microsoft.SecurityInsights/AlertRuleTemplates", + "name": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "apiVersion": "2022-04-01-preview", + "kind": "Scheduled", + "location": "[parameters('workspace-location')]", + "properties": { + "description": "Creates an incident when a large number of Critical/High severity CrowdStrike Falcon sensor detections is triggered by a single user", + "displayName": "Critical or High Severity Detections by User", + "enabled": false, + "query": "...", + "queryFrequency": "PT1H", + "queryPeriod": "PT1H", + "severity": "High", + "suppressionDuration": "PT1H", + "suppressionEnabled": false, + "triggerOperator": "GreaterThan", + "triggerThreshold": 0, + "status": "Available" + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", + "apiVersion": "2022-01-01-preview", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('AnalyticsRule-', last(split([resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', 8365ebfe-a381-45b7-ad08-7d818070e11f)],'/'))))]", + "properties": { + "description": "CrowdStrike Falcon Endpoint Protection Analytics Rule 1", + "parentId": "[resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', 8365ebfe-a381-45b7-ad08-7d818070e11f)]", + "contentId": "4465ebde-b381-45f7-ad08-7d818070a11c", + "kind": "AnalyticsRule", + "version": "1.0.0", + "source": { + "kind": "Solution", + "name": "str", + "sourceId": "str.azure-sentinel-solution-str" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + } + } + } + ] + } + }, + "tags": { + "tag1": "str" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/azuresentinel.azure-sentinel-solution-ciscoumbrella", + "name": "azuresentinel.azure-sentinel-solution-ciscoumbrella", + "type": "Microsoft.SecurityInsights/contenttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "contentProductId": "str.azure-sentinel-solution-str-ar-cbfe4fndz66bi", + "packageKind": "Solution", + "packageId": "str.azure-sentinel-solution-str", + "packageVersion": "1.0.0", + "contentKind": "AnalyticsRule", + "version": "1.0.1", + "displayName": "API Protection workbook template", + "source": { + "kind": "Solution", + "name": "CiscoUmbrella", + "sourceId": "azuresentinel.azure-sentinel-solution-ciscoumbrella" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfeab2-9ae0-4464-9919-dccaee2e48f0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/contentPackages/azuresentinel.azure-sentinel-solution-ciscoumbrella", + "name": "azuresentinel.azure-sentinel-solution-ciscoumbrella", + "type": "Microsoft.SecurityInsights/contenttemplates", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "contentId": "8365ebfe-a381-45b7-ad08-7d818070e11f", + "contentProductId": "str.azure-sentinel-solution-str-ar-cbfe4fndz66bi", + "packageKind": "Solution", + "packageId": "str.azure-sentinel-solution-str", + "packageVersion": "1.0.0", + "contentKind": "AnalyticsRule", + "version": "1.0.1", + "displayName": "API Protection workbook template", + "source": { + "kind": "Solution", + "name": "CiscoUmbrella", + "sourceId": "azuresentinel.azure-sentinel-solution-ciscoumbrella" + }, + "author": { + "name": "Microsoft", + "email": "support@microsoft.com" + }, + "support": { + "tier": "Microsoft", + "name": "Microsoft Corporation", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/" + }, + "dependencies": { + "criteria": [ + { + "contentId": "strDataConnector", + "kind": "DataConnector", + "version": "2.0.0" + }, + { + "contentId": "str-Parser", + "kind": "Parser", + "version": "2.0.0" + } + ], + "operator": "AND" + }, + "providers": [ + "Microsoft" + ], + "categories": { + "domains": [ + "Security - Cloud Security" + ], + "verticals": null + }, + "firstPublishDate": "2022-04-01" + }, + "systemData": { + "createdBy": "string", + "createdByType": "User", + "createdAt": "2020-04-27T21:53:29.0928001Z", + "lastModifiedBy": "string", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-04-27T21:53:29.0928001Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/CreateCustomizableDataConnectorDefinition.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/CreateCustomizableDataConnectorDefinition.json new file mode 100644 index 000000000000..8d02186dd0c4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/CreateCustomizableDataConnectorDefinition.json @@ -0,0 +1,258 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorDefinitionName": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "connectorDefinitionInput": { + "kind": "Customizable", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "GitHubAuditLogPolling_CL" + } + ], + "dataTypes": [ + { + "name": "GitHubAuditLogPolling_CL", + "lastDataReceivedQuery": "GitHubAuditLogPolling_CL \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "GitHubAuditLogPolling_CL \n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": false, + "delete": false, + "action": false + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "type": "OAuthForm", + "parameters": { + "clientIdLabel": "Client ID", + "clientSecretLabel": "Client Secret", + "connectButtonLabel": "Connect", + "disconnectButtonLabel": "Disconnect" + } + } + ] + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectorDefinitions", + "kind": "Customizable", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "GitHubAuditLogPolling_CL" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "GitHubAuditLogPolling_CL \n | take 10" + } + ], + "dataTypes": [ + { + "name": "GitHubAuditLogPolling_CL", + "lastDataReceivedQuery": "GitHubAuditLogPolling_CL \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "GitHubAuditLogPolling_CL \n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": false, + "delete": false, + "action": false + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "type": "OAuthForm", + "parameters": { + "clientIdLabel": "Client ID", + "clientSecretLabel": "Client Secret", + "connectButtonLabel": "Connect", + "disconnectButtonLabel": "Disconnect" + } + } + ] + } + ] + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectorDefinitions", + "kind": "Customizable", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "GitHubAuditLogPolling_CL" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "GitHubAuditLogPolling_CL \n | take 10" + } + ], + "dataTypes": [ + { + "name": "GitHubAuditLogPolling_CL", + "lastDataReceivedQuery": "GitHubAuditLogPolling_CL \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "GitHubAuditLogPolling_CL \n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": false, + "delete": false, + "action": false + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "type": "OAuthForm", + "parameters": { + "clientIdLabel": "Client ID", + "clientSecretLabel": "Client Secret", + "connectButtonLabel": "Connect", + "disconnectButtonLabel": "Disconnect" + } + } + ] + } + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/DeleteDataConnectorDefinitionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/DeleteDataConnectorDefinitionById.json new file mode 100644 index 000000000000..fb676f1f3c6d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/DeleteDataConnectorDefinitionById.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorDefinitionName": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetCustomizableDataConnectorDefinitionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetCustomizableDataConnectorDefinitionById.json new file mode 100644 index 000000000000..61311d36f912 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetCustomizableDataConnectorDefinitionById.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorDefinitionName": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "name": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "type": "Microsoft.SecurityInsights/dataConnectorDefinitions", + "kind": "Customizable", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "GitHubAuditLogPolling_CL" + } + ], + "dataTypes": [ + { + "name": "GitHubAuditLogPolling_CL", + "lastDataReceivedQuery": "GitHubAuditLogPolling_CL \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "GitHubAuditLogPolling_CL \n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": false, + "delete": false, + "action": false + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "type": "OAuthForm", + "parameters": { + "clientIdLabel": "Client ID", + "clientSecretLabel": "Client Secret", + "connectButtonLabel": "Connect", + "disconnectButtonLabel": "Disconnect" + } + } + ] + } + ] + }, + "connectionsConfig": { + "templateSpecName": "templateNameMock", + "templateSpecVersion": "1.0.0" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetDataConnectorDefinitions.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetDataConnectorDefinitions.json new file mode 100644 index 000000000000..6f7203b7b128 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectorDefinitions/GetDataConnectorDefinitions.json @@ -0,0 +1,94 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "name": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "type": "Microsoft.SecurityInsights/dataConnectorDefinitions", + "kind": "Customizable", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "GitHubAuditLogPolling_CL" + } + ], + "dataTypes": [ + { + "name": "GitHubAuditLogPolling_CL", + "lastDataReceivedQuery": "GitHubAuditLogPolling_CL \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "GitHubAuditLogPolling_CL \n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": false, + "delete": false, + "action": false + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "type": "OAuthForm", + "parameters": { + "clientIdLabel": "Client ID", + "clientSecretLabel": "Client Secret", + "connectButtonLabel": "Connect", + "disconnectButtonLabel": "Disconnect" + } + } + ] + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectory.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectory.json new file mode 100644 index 000000000000..2709fe5fae80 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectory.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "AzureActiveDirectory", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoAuthorization.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoAuthorization.json new file mode 100644 index 000000000000..2709fe5fae80 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoAuthorization.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "AzureActiveDirectory", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoLicense.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoLicense.json new file mode 100644 index 000000000000..2709fe5fae80 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureActiveDirectoryNoLicense.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "AzureActiveDirectory", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureSecurityCenter.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureSecurityCenter.json new file mode 100644 index 000000000000..a74811097fb2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsAzureSecurityCenter.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "AzureSecurityCenter", + "properties": { + "subscriptionId": "c0688291-89d7-4bed-87a2-a7b1bff43f4c" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsDynamics365.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsDynamics365.json new file mode 100644 index 000000000000..7abbdfc736f7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsDynamics365.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "Dynamics365", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsIoT.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsIoT.json new file mode 100644 index 000000000000..d4c82ad98594 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsIoT.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "IOT", + "properties": { + "subscriptionId": "c0688291-89d7-4bed-87a2-a7b1bff43f4c" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMdatp.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMdatp.json new file mode 100644 index 000000000000..494762f3a4f5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMdatp.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "MicrosoftCloudAppSecurity", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftCloudAppSecurity.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftCloudAppSecurity.json new file mode 100644 index 000000000000..494762f3a4f5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftCloudAppSecurity.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "MicrosoftCloudAppSecurity", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftPurviewInformationProtection.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftPurviewInformationProtection.json new file mode 100644 index 000000000000..c185fa73615b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftPurviewInformationProtection.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "MicrosoftPurviewInformationProtection", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatIntelligence.json new file mode 100644 index 000000000000..fc50b8c68b6c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatIntelligence.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "MicrosoftThreatIntelligence", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatProtection.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatProtection.json new file mode 100644 index 000000000000..b3c4a05a6274 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsMicrosoftThreatProtection.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "MicrosoftThreatProtection", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOffice365Project.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOffice365Project.json new file mode 100644 index 000000000000..c68d0a35c8d9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOffice365Project.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "Office365Project", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeATP.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeATP.json new file mode 100644 index 000000000000..f2a7004ff563 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeATP.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "OfficeATP", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeIRM.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeIRM.json new file mode 100644 index 000000000000..58e96d0a078a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficeIRM.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "OfficeIRM", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficePowerBI.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficePowerBI.json new file mode 100644 index 000000000000..b8a7d5f9c0b5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsOfficePowerBI.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "OfficePowerBI", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsPurviewAudit.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsPurviewAudit.json new file mode 100644 index 000000000000..c49b3b97461f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsPurviewAudit.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "PurviewAudit", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligence.json new file mode 100644 index 000000000000..fb0745e35a31 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligence.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "ThreatIntelligence", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligenceTaxii.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligenceTaxii.json new file mode 100644 index 000000000000..9ba0a9eaad2c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CheckRequirementsThreatIntelligenceTaxii.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "DataConnectorsCheckRequirements": { + "kind": "ThreatIntelligenceTaxii", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8" + } + } + }, + "responses": { + "200": { + "body": { + "authorizationState": "Valid", + "licenseState": "Valid" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPolling.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPolling.json new file mode 100644 index 000000000000..933e837d5210 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPolling.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "connectBody": { + "kind": "APIKey", + "apiKey": "123456789", + "requestConfigUserInputValues": [ + { + "displayText": "Organization Name", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "somePlaceHolderValue", + "requestObjectKey": "apiEndpoint" + } + ] + } + }, + "responses": { + "200": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPollingV2Logs.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPollingV2Logs.json new file mode 100644 index 000000000000..30f76ccf9f2c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/ConnectAPIPollingV2Logs.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "connectBody": { + "kind": "APIKey", + "apiKey": "123456789", + "dataCollectionEndpoint": "https://test.eastus.ingest.monitor.azure.com", + "dataCollectionRuleImmutableId": "dcr-34adsj9o7d6f9de204478b9cgb43b631", + "outputStream": "Custom-MyTableRawData", + "requestConfigUserInputValues": [ + { + "displayText": "Organization Name", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "somePlaceHolderValue", + "requestObjectKey": "apiEndpoint" + } + ] + } + }, + "responses": { + "200": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateAPIPolling.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateAPIPolling.json new file mode 100644 index 000000000000..0204ee74d696 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateAPIPolling.json @@ -0,0 +1,368 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "dataConnector": { + "kind": "APIPolling", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueriesTableName": "GitHubAuditLogPolling_CL", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "{{graphQueriesTableName}}\n | take 10 " + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "SentinelKindsV2", + "value": [] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "parameters": { + "enable": "true", + "userRequestPlaceHoldersInput": [ + { + "displayText": "Organization Name", + "requestObjectKey": "apiEndpoint", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "" + } + ] + }, + "type": "APIKey" + } + ] + } + ] + }, + "pollingConfig": { + "auth": { + "authType": "APIKey", + "apiKeyIdentifier": "token", + "apiKeyName": "Authorization" + }, + "request": { + "apiEndpoint": "https://api.github.com/organizations/{{placeHolder1}}/audit-log", + "rateLimitQps": 50, + "queryWindowInMin": 15, + "httpMethod": "Get", + "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ", + "retryCount": 2, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}" + } + }, + "paging": { + "pagingType": "LinkHeader", + "pageSizeParaName": "per_page" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "APIPolling", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueriesTableName": "GitHubAuditLogPolling_CL", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "{{graphQueriesTableName}}\n | take 10 " + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "SentinelKindsV2", + "value": [] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "parameters": { + "enable": "true", + "userRequestPlaceHoldersInput": [ + { + "displayText": "Organization Name", + "requestObjectKey": "apiEndpoint", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "" + } + ] + }, + "type": "APIKey" + } + ] + } + ] + }, + "pollingConfig": { + "auth": { + "authType": "APIKey", + "apiKeyIdentifier": "token", + "apiKeyName": "Authorization" + }, + "request": { + "apiEndpoint": "https://api.github.com/organizations/{{placeHolder1}}/audit-log", + "rateLimitQps": 50, + "queryWindowInMin": 15, + "httpMethod": "Get", + "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ", + "retryCount": 2, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}" + } + }, + "paging": { + "pagingType": "LinkHeader", + "pageSizeParaName": "per_page" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "APIPolling", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueriesTableName": "GitHubAuditLogPolling_CL", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "{{graphQueriesTableName}}\n | take 10 " + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "SentinelKindsV2", + "value": [] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "parameters": { + "enable": "true", + "userRequestPlaceHoldersInput": [ + { + "displayText": "Organization Name", + "requestObjectKey": "apiEndpoint", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "" + } + ] + }, + "type": "APIKey" + } + ] + } + ] + }, + "pollingConfig": { + "auth": { + "authType": "APIKey", + "apiKeyIdentifier": "token", + "apiKeyName": "Authorization" + }, + "request": { + "apiEndpoint": "https://api.github.com/organizations/{{placeHolder1}}/audit-log", + "rateLimitQps": 50, + "queryWindowInMin": 15, + "httpMethod": "Get", + "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ", + "retryCount": 2, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}" + } + }, + "paging": { + "pagingType": "LinkHeader", + "pageSizeParaName": "per_page" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateDynamics365DataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateDynamics365DataConnetor.json new file mode 100644 index 000000000000..e5bd301307a1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateDynamics365DataConnetor.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c2541efb-c9a6-47fe-9501-87d1017d1512", + "dataConnector": { + "kind": "Dynamics365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "dynamics365CdsActivities": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "c2541efb-c9a6-47fe-9501-87d1017d1512", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Dynamics365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "dynamics365CdsActivities": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "c2541efb-c9a6-47fe-9501-87d1017d1512", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Dynamics365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "dynamics365CdsActivities": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGenericUI.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGenericUI.json new file mode 100644 index 000000000000..9b2ae1b8da89 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGenericUI.json @@ -0,0 +1,437 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "dataConnector": { + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "Qualys Vulnerability Management (CCP DEMO)", + "publisher": "Qualys", + "descriptionMarkdown": "The [Qualys Vulnerability Management (VM)](https://www.qualys.com/apps/vulnerability-management/) data connector provides the capability to ingest vulnerability host detection data into Azure Sentinel through the Qualys API. The connector provides visibility into host detection data from vulerability scans. This connector provides Azure Sentinel the capability to view dashboards, create custom alerts, and improve investigation ", + "graphQueriesTableName": "QualysHostDetection_CL", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "{{graphQueriesTableName}}", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "Top 10 Vulerabilities detected", + "query": "{{graphQueriesTableName}}\n | mv-expand todynamic(Detections_s)\n | extend Vulnerability = tostring(Detections_s.Results)\n | summarize count() by Vulnerability\n | top 10 by count_" + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "{{graphQueriesTableName}}\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions on the workspace are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "name": "Microsoft.Web/sites permissions", + "description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)." + }, + { + "name": "Qualys API Key", + "description": "A Qualys VM API username and password is required. [See the documentation to learn more about Qualys VM API](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf)." + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": ">**NOTE:** This connector uses Azure Functions to connect to Qualys VM to pull its logs into Azure Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + }, + { + "title": "", + "description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." + }, + { + "title": "", + "description": "**STEP 1 - Configuration steps for the Qualys VM API**\n\n1. Log into the Qualys Vulnerability Management console with an administrator account, select the **Users** tab and the **Users** subtab. \n2. Click on the **New** drop-down menu and select **Users..**\n3. Create a username and password for the API account. \n4. In the **User Roles** tab, ensure the account role is set to **Manager** and access is allowed to **GUI** and **API**\n4. Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account. \n5. Log back into the console using an administrator account and modify the API accounts User Roles, removing access to **GUI**. \n6. Save all changes." + }, + { + "title": "", + "description": "**STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function**\n\n>**IMPORTANT:** Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.", + "instructions": [ + { + "parameters": { + "fillWith": [ + "WorkspaceId" + ], + "label": "Workspace ID" + }, + "type": "CopyableLabel" + }, + { + "parameters": { + "fillWith": [ + "PrimaryKey" + ], + "label": "Primary Key" + }, + "type": "CopyableLabel" + } + ] + }, + { + "title": "Option 1 - Azure Resource Manager (ARM) Template", + "description": "Use this method for automated deployment of the Qualys VM connector using an ARM Tempate.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinelqualysvmazuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the **Workspace ID**, **Workspace Key**, **API Username**, **API Password** , update the **URI**, and any additional URI **Filter Parameters** (each filter should be separated by an \"&\" symbol, no spaces.) \n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348) -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format. \n - The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion. \n> - Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details. \n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**. \n5. Click **Purchase** to deploy." + }, + { + "title": "Option 2 - Manual Deployment of Azure Functions", + "description": "Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions." + }, + { + "title": "", + "description": "**1. Create a Function App**\n\n1. From the Azure Portal, navigate to [Function App](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp), and select **+ Add**.\n2. In the **Basics** tab, ensure Runtime stack is set to **Powershell Core**. \n3. In the **Hosting** tab, ensure the **Consumption (Serverless)** plan type is selected.\n4. Make other preferrable configuration changes, if needed, then click **Create**." + }, + { + "title": "", + "description": "**2. Import Function App Code**\n\n1. In the newly created Function App, select **Functions** on the left pane and click **+ New Function**.\n2. Select **Timer Trigger**.\n3. Enter a unique Function **Name** and leave the default cron schedule of every 5 minutes, then click **Create**.\n5. Click on **Code + Test** on the left pane. \n6. Copy the [Function App Code](https://aka.ms/sentinelqualysvmazurefunctioncode) and paste into the Function App `run.ps1` editor.\n7. Click **Save**." + }, + { + "title": "", + "description": "**3. Configure the Function App**\n\n1. In the Function App, select the Function App Name and select **Configuration**.\n2. In the **Application settings** tab, select **+ New application setting**.\n3. Add each of the following seven (7) application settings individually, with their respective string values (case-sensitive): \n\t\tapiUsername\n\t\tapiPassword\n\t\tworkspaceID\n\t\tworkspaceKey\n\t\turi\n\t\tfilterParameters\n\t\ttimeInterval\n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348). The `uri` value must follow the following schema: `https:///api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=` -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.\n> - Add any additional filter parameters, for the `filterParameters` variable, that need to be appended to the URI. Each parameter should be seperated by an \"&\" symbol and should not include any spaces.\n> - Set the `timeInterval` (in minutes) to the value of `5` to correspond to the Timer Trigger of every `5` minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.\n> - Note: If using Azure Key Vault, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.\n4. Once all application settings have been entered, click **Save**." + }, + { + "title": "", + "description": "**4. Configure the host.json**.\n\nDue to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.\n\n1. In the Function App, select the Function App Name and select the **App Service Editor** blade.\n2. Click **Go** to open the editor, then select the **host.json** file under the **wwwroot** directory.\n3. Add the line `\"functionTimeout\": \"00:10:00\",` above the `managedDependancy` line \n4. Ensure **SAVED** appears on the top right corner of the editor, then exit the editor.\n\n> NOTE: If a longer timeout duration is required, consider upgrading to an [App Service Plan](https://docs.microsoft.com/azure/azure-functions/functions-scale#timeout)" + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "Qualys Vulnerability Management (CCP DEMO)", + "publisher": "Qualys", + "descriptionMarkdown": "The [Qualys Vulnerability Management (VM)](https://www.qualys.com/apps/vulnerability-management/) data connector provides the capability to ingest vulnerability host detection data into Azure Sentinel through the Qualys API. The connector provides visibility into host detection data from vulerability scans. This connector provides Azure Sentinel the capability to view dashboards, create custom alerts, and improve investigation ", + "graphQueriesTableName": "QualysHostDetection_CL", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "{{graphQueriesTableName}}", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "Top 10 Vulerabilities detected", + "query": "{{graphQueriesTableName}}\n | mv-expand todynamic(Detections_s)\n | extend Vulnerability = tostring(Detections_s.Results)\n | summarize count() by Vulnerability\n | top 10 by count_" + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "{{graphQueriesTableName}}\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions on the workspace are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "name": "Microsoft.Web/sites permissions", + "description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)." + }, + { + "name": "Qualys API Key", + "description": "A Qualys VM API username and password is required. [See the documentation to learn more about Qualys VM API](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf)." + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": ">**NOTE:** This connector uses Azure Functions to connect to Qualys VM to pull its logs into Azure Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + }, + { + "title": "", + "description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." + }, + { + "title": "", + "description": "**STEP 1 - Configuration steps for the Qualys VM API**\n\n1. Log into the Qualys Vulnerability Management console with an administrator account, select the **Users** tab and the **Users** subtab. \n2. Click on the **New** drop-down menu and select **Users..**\n3. Create a username and password for the API account. \n4. In the **User Roles** tab, ensure the account role is set to **Manager** and access is allowed to **GUI** and **API**\n4. Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account. \n5. Log back into the console using an administrator account and modify the API accounts User Roles, removing access to **GUI**. \n6. Save all changes." + }, + { + "title": "", + "description": "**STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function**\n\n>**IMPORTANT:** Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.", + "instructions": [ + { + "parameters": { + "fillWith": [ + "WorkspaceId" + ], + "label": "Workspace ID" + }, + "type": "CopyableLabel" + }, + { + "parameters": { + "fillWith": [ + "PrimaryKey" + ], + "label": "Primary Key" + }, + "type": "CopyableLabel" + } + ] + }, + { + "title": "Option 1 - Azure Resource Manager (ARM) Template", + "description": "Use this method for automated deployment of the Qualys VM connector using an ARM Tempate.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinelqualysvmazuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the **Workspace ID**, **Workspace Key**, **API Username**, **API Password** , update the **URI**, and any additional URI **Filter Parameters** (each filter should be separated by an \"&\" symbol, no spaces.) \n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348) -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format. \n - The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion. \n> - Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details. \n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**. \n5. Click **Purchase** to deploy." + }, + { + "title": "Option 2 - Manual Deployment of Azure Functions", + "description": "Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions." + }, + { + "title": "", + "description": "**1. Create a Function App**\n\n1. From the Azure Portal, navigate to [Function App](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp), and select **+ Add**.\n2. In the **Basics** tab, ensure Runtime stack is set to **Powershell Core**. \n3. In the **Hosting** tab, ensure the **Consumption (Serverless)** plan type is selected.\n4. Make other preferrable configuration changes, if needed, then click **Create**." + }, + { + "title": "", + "description": "**2. Import Function App Code**\n\n1. In the newly created Function App, select **Functions** on the left pane and click **+ New Function**.\n2. Select **Timer Trigger**.\n3. Enter a unique Function **Name** and leave the default cron schedule of every 5 minutes, then click **Create**.\n5. Click on **Code + Test** on the left pane. \n6. Copy the [Function App Code](https://aka.ms/sentinelqualysvmazurefunctioncode) and paste into the Function App `run.ps1` editor.\n7. Click **Save**." + }, + { + "title": "", + "description": "**3. Configure the Function App**\n\n1. In the Function App, select the Function App Name and select **Configuration**.\n2. In the **Application settings** tab, select **+ New application setting**.\n3. Add each of the following seven (7) application settings individually, with their respective string values (case-sensitive): \n\t\tapiUsername\n\t\tapiPassword\n\t\tworkspaceID\n\t\tworkspaceKey\n\t\turi\n\t\tfilterParameters\n\t\ttimeInterval\n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348). The `uri` value must follow the following schema: `https:///api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=` -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.\n> - Add any additional filter parameters, for the `filterParameters` variable, that need to be appended to the URI. Each parameter should be seperated by an \"&\" symbol and should not include any spaces.\n> - Set the `timeInterval` (in minutes) to the value of `5` to correspond to the Timer Trigger of every `5` minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.\n> - Note: If using Azure Key Vault, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.\n4. Once all application settings have been entered, click **Save**." + }, + { + "title": "", + "description": "**4. Configure the host.json**.\n\nDue to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.\n\n1. In the Function App, select the Function App Name and select the **App Service Editor** blade.\n2. Click **Go** to open the editor, then select the **host.json** file under the **wwwroot** directory.\n3. Add the line `\"functionTimeout\": \"00:10:00\",` above the `managedDependancy` line \n4. Ensure **SAVED** appears on the top right corner of the editor, then exit the editor.\n\n> NOTE: If a longer timeout duration is required, consider upgrading to an [App Service Plan](https://docs.microsoft.com/azure/azure-functions/functions-scale#timeout)" + } + ] + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "Qualys Vulnerability Management (CCP DEMO)", + "publisher": "Qualys", + "descriptionMarkdown": "The [Qualys Vulnerability Management (VM)](https://www.qualys.com/apps/vulnerability-management/) data connector provides the capability to ingest vulnerability host detection data into Azure Sentinel through the Qualys API. The connector provides visibility into host detection data from vulerability scans. This connector provides Azure Sentinel the capability to view dashboards, create custom alerts, and improve investigation ", + "graphQueriesTableName": "QualysHostDetection_CL", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "{{graphQueriesTableName}}", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "Top 10 Vulerabilities detected", + "query": "{{graphQueriesTableName}}\n | mv-expand todynamic(Detections_s)\n | extend Vulnerability = tostring(Detections_s.Results)\n | summarize count() by Vulnerability\n | top 10 by count_" + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "{{graphQueriesTableName}}\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions on the workspace are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "name": "Microsoft.Web/sites permissions", + "description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)." + }, + { + "name": "Qualys API Key", + "description": "A Qualys VM API username and password is required. [See the documentation to learn more about Qualys VM API](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf)." + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": ">**NOTE:** This connector uses Azure Functions to connect to Qualys VM to pull its logs into Azure Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + }, + { + "title": "", + "description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." + }, + { + "title": "", + "description": "**STEP 1 - Configuration steps for the Qualys VM API**\n\n1. Log into the Qualys Vulnerability Management console with an administrator account, select the **Users** tab and the **Users** subtab. \n2. Click on the **New** drop-down menu and select **Users..**\n3. Create a username and password for the API account. \n4. In the **User Roles** tab, ensure the account role is set to **Manager** and access is allowed to **GUI** and **API**\n4. Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account. \n5. Log back into the console using an administrator account and modify the API accounts User Roles, removing access to **GUI**. \n6. Save all changes." + }, + { + "title": "", + "description": "**STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function**\n\n>**IMPORTANT:** Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.", + "instructions": [ + { + "parameters": { + "fillWith": [ + "WorkspaceId" + ], + "label": "Workspace ID" + }, + "type": "CopyableLabel" + }, + { + "parameters": { + "fillWith": [ + "PrimaryKey" + ], + "label": "Primary Key" + }, + "type": "CopyableLabel" + } + ] + }, + { + "title": "Option 1 - Azure Resource Manager (ARM) Template", + "description": "Use this method for automated deployment of the Qualys VM connector using an ARM Tempate.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinelqualysvmazuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the **Workspace ID**, **Workspace Key**, **API Username**, **API Password** , update the **URI**, and any additional URI **Filter Parameters** (each filter should be separated by an \"&\" symbol, no spaces.) \n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348) -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format. \n - The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion. \n> - Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details. \n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**. \n5. Click **Purchase** to deploy." + }, + { + "title": "Option 2 - Manual Deployment of Azure Functions", + "description": "Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions." + }, + { + "title": "", + "description": "**1. Create a Function App**\n\n1. From the Azure Portal, navigate to [Function App](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp), and select **+ Add**.\n2. In the **Basics** tab, ensure Runtime stack is set to **Powershell Core**. \n3. In the **Hosting** tab, ensure the **Consumption (Serverless)** plan type is selected.\n4. Make other preferrable configuration changes, if needed, then click **Create**." + }, + { + "title": "", + "description": "**2. Import Function App Code**\n\n1. In the newly created Function App, select **Functions** on the left pane and click **+ New Function**.\n2. Select **Timer Trigger**.\n3. Enter a unique Function **Name** and leave the default cron schedule of every 5 minutes, then click **Create**.\n5. Click on **Code + Test** on the left pane. \n6. Copy the [Function App Code](https://aka.ms/sentinelqualysvmazurefunctioncode) and paste into the Function App `run.ps1` editor.\n7. Click **Save**." + }, + { + "title": "", + "description": "**3. Configure the Function App**\n\n1. In the Function App, select the Function App Name and select **Configuration**.\n2. In the **Application settings** tab, select **+ New application setting**.\n3. Add each of the following seven (7) application settings individually, with their respective string values (case-sensitive): \n\t\tapiUsername\n\t\tapiPassword\n\t\tworkspaceID\n\t\tworkspaceKey\n\t\turi\n\t\tfilterParameters\n\t\ttimeInterval\n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348). The `uri` value must follow the following schema: `https:///api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=` -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.\n> - Add any additional filter parameters, for the `filterParameters` variable, that need to be appended to the URI. Each parameter should be seperated by an \"&\" symbol and should not include any spaces.\n> - Set the `timeInterval` (in minutes) to the value of `5` to correspond to the Timer Trigger of every `5` minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.\n> - Note: If using Azure Key Vault, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.\n4. Once all application settings have been entered, click **Save**." + }, + { + "title": "", + "description": "**4. Configure the host.json**.\n\nDue to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.\n\n1. In the Function App, select the Function App Name and select the **App Service Editor** blade.\n2. Click **Go** to open the editor, then select the **host.json** file under the **wwwroot** directory.\n3. Add the line `\"functionTimeout\": \"00:10:00\",` above the `managedDependancy` line \n4. Ensure **SAVED** appears on the top right corner of the editor, then exit the editor.\n\n> NOTE: If a longer timeout duration is required, consider upgrading to an [App Service Plan](https://docs.microsoft.com/azure/azure-functions/functions-scale#timeout)" + } + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGoogleCloudPlatform.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGoogleCloudPlatform.json new file mode 100644 index 000000000000..58bf4ba66e45 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateGoogleCloudPlatform.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1", + "dataConnector": { + "kind": "GCP", + "properties": { + "connectorDefinitionName": "GcpConnector", + "auth": { + "serviceAccountEmail": "sentinel-service-account@project-id.iam.gserviceaccount.com", + "projectNumber": "123456789012", + "workloadIdentityProviderId": "sentinel-identity-provider", + "type": "GCP" + }, + "request": { + "projectId": "project-id", + "subscriptionNames": [ + "sentinel-subscription" + ] + }, + "dcrConfig": { + "dataCollectionEndpoint": "https://microsoft-sentinel-datacollectionendpoint-123m.westeurope-1.ingest.monitor.azure.com", + "dataCollectionRuleImmutableId": "dcr-de21b053bd5a44beb99a256c9db85023", + "streamName": "SENTINEL_GCP_AUDIT_LOGS" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/GCP_afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "GCP", + "properties": { + "connectorDefinitionName": "GcpConnector", + "auth": { + "serviceAccountEmail": "sentinel-service-account@project-id.iam.gserviceaccount.com", + "projectNumber": "123456789012", + "workloadIdentityProviderId": "sentinel-identity-provider", + "type": "GCP" + }, + "request": { + "projectId": "project-id", + "subscriptionNames": [ + "sentinel-subscription" + ] + }, + "dcrConfig": { + "dataCollectionEndpoint": "https://microsoft-sentinel-datacollectionendpoint-123m.westeurope-1.ingest.monitor.azure.com", + "dataCollectionRuleImmutableId": "dcr-de21b053bd5a44beb99a256c9db85023", + "streamName": "SENTINEL_GCP_AUDIT_LOGS" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/GCP_afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "GCP", + "properties": { + "connectorDefinitionName": "GcpConnector", + "auth": { + "serviceAccountEmail": "sentinel-service-account@project-id.iam.gserviceaccount.com", + "projectNumber": "123456789012", + "workloadIdentityProviderId": "sentinel-identity-provider", + "type": "GCP" + }, + "request": { + "projectId": "project-id", + "subscriptionNames": [ + "sentinel-subscription" + ] + }, + "dcrConfig": { + "dataCollectionEndpoint": "https://microsoft-sentinel-datacollectionendpoint-123m.westeurope-1.ingest.monitor.azure.com", + "dataCollectionRuleImmutableId": "dcr-de21b053bd5a44beb99a256c9db85023", + "streamName": "SENTINEL_GCP_AUDIT_LOGS" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftPurviewInformationProtectionDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftPurviewInformationProtectionDataConnetor.json new file mode 100644 index 000000000000..799ee1728153 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftPurviewInformationProtectionDataConnetor.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "MicrosoftPurviewInformationProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftPurviewInformationProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftPurviewInformationProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json new file mode 100644 index 000000000000..48f6af9b0035 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "dataConnector": { + "kind": "MicrosoftThreatIntelligence", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "dataTypes": { + "microsoftEmergingThreatFeed": { + "state": "Enabled", + "lookbackPeriod": "1970-01-01T00:00:00.000Z" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "d12423f6-a60b-4ca5-88c0-feb1a182d0f0", + "kind": "MicrosoftThreatIntelligence", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "dataTypes": { + "microsoftEmergingThreatFeed": { + "state": "Enabled", + "lookbackPeriod": "01/01/1970 00:00:00" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "d12423f6-a60b-4ca5-88c0-feb1a182d0f0", + "kind": "MicrosoftThreatIntelligence", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "dataTypes": { + "microsoftEmergingThreatFeed": { + "state": "Enabled", + "lookbackPeriod": "01/01/1970 00:00:00" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatProtectionDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatProtectionDataConnetor.json new file mode 100644 index 000000000000..433f5bf16bc6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateMicrosoftThreatProtectionDataConnetor.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "MicrosoftThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "178265c4-3136-4ff6-8ed1-b5b62b4cb5f5", + "dataTypes": { + "incidents": { + "state": "Disabled" + }, + "alerts": { + "state": "Enabled" + } + }, + "filteredProviders": { + "alerts": [ + "microsoftDefenderForCloudApps" + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/595c870a-5b74-4a23-984c-9ddba29cefe3", + "name": "595c870a-5b74-4a23-984c-9ddba29cefe3", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftThreatProtection", + "etag": "2b61bd0c-62b4-4968-8f9a-71b91be61127", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "incidents": { + "state": "Disabled55" + }, + "alerts": { + "state": "Enabled" + } + }, + "filteredProviders": { + "alerts": [ + "microsoftDefenderForCloudApps" + ] + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/595c870a-5b74-4a23-984c-9ddba29cefe3", + "name": "595c870a-5b74-4a23-984c-9ddba29cefe3", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftThreatProtection", + "etag": "2b61bd0c-62b4-4968-8f9a-71b91be61127", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "incidents": { + "state": "Disabled" + }, + "alerts": { + "state": "Enabled" + } + }, + "filteredProviders": { + "alerts": [ + "microsoftDefenderForCloudApps" + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOffice365ProjectDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOffice365ProjectDataConnetor.json new file mode 100644 index 000000000000..bb814a0a5502 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOffice365ProjectDataConnetor.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "Office365Project", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365Project", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365Project", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficeDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficeDataConnetor.json new file mode 100644 index 000000000000..d7c46565c7a1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficeDataConnetor.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "Office365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "sharePoint": { + "state": "Enabled" + }, + "exchange": { + "state": "Enabled" + }, + "teams": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "sharePoint": { + "state": "Enabled" + }, + "exchange": { + "state": "Enabled" + }, + "teams": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "sharePoint": { + "state": "Enabled" + }, + "exchange": { + "state": "Enabled" + }, + "teams": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficePowerBIDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficePowerBIDataConnector.json new file mode 100644 index 000000000000..a47117470f71 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateOfficePowerBIDataConnector.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "OfficePowerBI", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficePowerBI", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficePowerBI", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreatePurviewAuditDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreatePurviewAuditDataConnector.json new file mode 100644 index 000000000000..f6b757b37909 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreatePurviewAuditDataConnector.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "PurviewAudit", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "sourceType": "MicrosoftFlow", + "connectorDefinitionName": "PowerAutomate", + "dcrConfig": { + "dataCollectionEndpoint": "https://microsoft-sentinel-datacollectionendpoint-123m.westeurope-1.ingest.monitor.azure.com", + "dataCollectionRuleImmutableId": "dcr-de21b053bd5a44beb99a256c9db85023", + "streamName": "OFFICEPOWERAUTOMATE_RESTAPI" + }, + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PurviewAudit", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "dataTypes": { + "logs": { + "state": "Enabled" + } + }, + "sourceType": "MicrosoftFlow", + "connectorDefinitionName": "PowerAutomate", + "dcrConfig": null, + "tenantId": "MicrosoftFlow" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PurviewAudit", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "dataTypes": { + "logs": { + "state": "Enabled" + } + }, + "sourceType": "MicrosoftFlow", + "connectorDefinitionName": "PowerAutomate", + "dcrConfig": null, + "tenantId": "MicrosoftFlow" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceDataConnector.json new file mode 100644 index 000000000000..f15c7f5e3a0a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceDataConnector.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "kind": "ThreatIntelligence", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "tipLookbackPeriod": "2020-01-01T13:00:30.123Z", + "dataTypes": { + "indicators": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligence", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "tipLookbackPeriod": "2020-01-01T13:00:30.123Z", + "dataTypes": { + "indicators": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligence", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "tipLookbackPeriod": "2020-01-01T13:00:30.123Z", + "dataTypes": { + "indicators": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceTaxiiDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceTaxiiDataConnector.json new file mode 100644 index 000000000000..931517c467d3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/CreateThreatIntelligenceTaxiiDataConnector.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "dataConnector": { + "etag": "d12423f6-a60b-4ca5-88c0-feb1a182d0f0", + "kind": "ThreatIntelligenceTaxii", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "taxiiServer": "https://limo.anomali.com/api/v1/taxii2/feeds", + "collectionId": "135", + "workspaceId": "dd124572-4962-4495-9bd2-9dade12314b4", + "friendlyName": "testTaxii", + "userName": "--", + "password": "--", + "taxiiLookbackPeriod": "2020-01-01T13:00:30.123Z", + "pollingFrequency": "OnceADay", + "dataTypes": { + "taxiiClient": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "d12423f6-a60b-4ca5-88c0-feb1a182d0f0", + "kind": "ThreatIntelligenceTaxii", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "taxiiServer": "https://limo.anomali.com/api/v1/taxii2/feeds", + "collectionId": "135", + "workspaceId": "28e5f051-34cb-4208-9037-693e5342a871", + "friendlyName": "testTaxii", + "userName": null, + "password": null, + "taxiiLookbackPeriod": "2020-01-01T13:00:30.123Z", + "pollingFrequency": "OnceADay", + "dataTypes": { + "taxiiClient": { + "state": "Enabled" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "d12423f6-a60b-4ca5-88c0-feb1a182d0f0", + "kind": "ThreatIntelligenceTaxii", + "properties": { + "tenantId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "taxiiServer": "https://limo.anomali.com/api/v1/taxii2/feeds", + "collectionId": "135", + "workspaceId": "28e5f051-34cb-4208-9037-693e5342a871", + "friendlyName": "testTaxii", + "userName": null, + "password": null, + "taxiiLookbackPeriod": "2020-01-01T13:00:30.123Z", + "pollingFrequency": "OnceADay", + "dataTypes": { + "taxiiClient": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteAPIPolling.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteAPIPolling.json new file mode 100644 index 000000000000..7156676b2e54 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteAPIPolling.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGenericUI.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGenericUI.json new file mode 100644 index 000000000000..7156676b2e54 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGenericUI.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGoogleCloudPlatform.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGoogleCloudPlatform.json new file mode 100644 index 000000000000..747927bd7a02 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteGoogleCloudPlatform.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftPurviewInformationProtectionDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftPurviewInformationProtectionDataConnetor.json new file mode 100644 index 000000000000..5dc9486c304d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftPurviewInformationProtectionDataConnetor.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json new file mode 100644 index 000000000000..94bedc3c1c10 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOffice365ProjectDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOffice365ProjectDataConnetor.json new file mode 100644 index 000000000000..5dc9486c304d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOffice365ProjectDataConnetor.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficeDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficeDataConnetor.json new file mode 100644 index 000000000000..5dc9486c304d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficeDataConnetor.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json new file mode 100644 index 000000000000..5dc9486c304d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeletePurviewAuditDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeletePurviewAuditDataConnector.json new file mode 100644 index 000000000000..5dc9486c304d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DeletePurviewAuditDataConnector.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DisconnectAPIPolling.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DisconnectAPIPolling.json new file mode 100644 index 000000000000..faaf82f9a43b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/DisconnectAPIPolling.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "disconnectBody": {} + }, + "responses": { + "200": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAPIPolling.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAPIPolling.json new file mode 100644 index 000000000000..c1bb29ca523a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAPIPolling.json @@ -0,0 +1,133 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "APIPolling", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "customImage": "The image connector content", + "graphQueriesTableName": "GitHubAuditLogPolling_CL", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "{{graphQueriesTableName}}\n | take 10 " + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "SentinelKindsV2", + "value": [] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "parameters": { + "enable": "true", + "userRequestPlaceHoldersInput": [ + { + "displayText": "Organization Name", + "requestObjectKey": "apiEndpoint", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "" + } + ] + }, + "type": "APIKey" + } + ] + } + ] + }, + "pollingConfig": { + "auth": { + "authType": "APIKey", + "apiKeyIdentifier": "token", + "apiKeyName": "Authorization" + }, + "request": { + "apiEndpoint": "https://api.github.com/organizations/{{placeHolder1}}/audit-log", + "rateLimitQps": 50, + "queryWindowInMin": 15, + "httpMethod": "Get", + "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ", + "retryCount": 2, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}" + } + }, + "paging": { + "pagingType": "LinkHeader", + "pageSizeParaName": "per_page" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesCloudTrailById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesCloudTrailById.json new file mode 100644 index 000000000000..a697dc87b228 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesCloudTrailById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "AmazonWebServicesCloudTrail", + "properties": { + "awsRoleArn": "myAwsRoleArn", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesS3ById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesS3ById.json new file mode 100644 index 000000000000..d4ec4dd3d2e5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAmazonWebServicesS3ById.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "afef3743-0c88-469c-84ff-ca2e87dc1e48" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "afef3743-0c88-469c-84ff-ca2e87dc1e48", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "AmazonWebServicesS3", + "properties": { + "destinationTable": "AWSVPCFlow", + "roleArn": "arn:aws:iam::072643944673:role/RoleName", + "sqsUrls": [ + "https://sqs.us-west-1.amazonaws.com/111111111111/sqsTestName" + ], + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureActiveDirectoryById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureActiveDirectoryById.json new file mode 100644 index 000000000000..b76aa16bf8fd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureActiveDirectoryById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "f0cd27d2-5f03-4c06-ba31-d2dc82dcb51d" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/f0cd27d2-5f03-4c06-ba31-d2dc82dcb51d", + "name": "f0cd27d2-5f03-4c06-ba31-d2dc82dcb51d", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureActiveDirectory", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureAdvancedThreatProtectionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureAdvancedThreatProtectionById.json new file mode 100644 index 000000000000..7de0652482b7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureAdvancedThreatProtectionById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "07e42cb3-e658-4e90-801c-efa0f29d3d44" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/07e42cb3-e658-4e90-801c-efa0f29d3d44", + "name": "07e42cb3-e658-4e90-801c-efa0f29d3d44", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureAdvancedThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureSecurityCenterById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureSecurityCenterById.json new file mode 100644 index 000000000000..a796d2422e52 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetAzureSecurityCenterById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "name": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureSecurityCenter", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "subscriptionId": "c0688291-89d7-4bed-87a2-a7b1bff43f4c", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDataConnectors.json new file mode 100644 index 000000000000..71f4708b3cac --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDataConnectors.json @@ -0,0 +1,526 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "name": "763f9fa1-c2d3-4fa2-93e9-bccd4899aa12", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureSecurityCenter", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligence", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "indicators": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c39bb458-02a7-4b3f-b0c8-71a1d2692652", + "name": "c39bb458-02a7-4b3f-b0c8-71a1d2692652", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligenceTaxii", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "workspaceId": "8b014a77-4695-4ef4-96bb-6623afb121a2", + "friendlyName": "My TI Taxii Connector", + "taxiiServer": "https://mytaxiiserver.com/taxiing/v2/api", + "collectionId": "e0b1f32d-1188-48f7-a7a3-de71924e4b5e", + "userName": "", + "password": "", + "pollingFrequency": "OnceAMinute", + "dataTypes": { + "taxiiClient": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/f0cd27d2-5f03-4c06-ba31-d2dc82dcb51d", + "name": "f0cd27d2-5f03-4c06-ba31-d2dc82dcb51d", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureActiveDirectory", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "sharePoint": { + "state": "Enabled" + }, + "exchange": { + "state": "Enabled" + }, + "teams": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/b96d014d-b5c2-4a01-9aba-a8058f629d42", + "name": "b96d014d-b5c2-4a01-9aba-a8058f629d42", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftCloudAppSecurity", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + }, + "discoveryLogs": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/07e42cb3-e658-4e90-801c-efa0f29d3d44", + "name": "07e42cb3-e658-4e90-801c-efa0f29d3d44", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "AzureAdvancedThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "AmazonWebServicesCloudTrail", + "properties": { + "awsRoleArn": "myAwsRoleArn", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "afef3743-0c88-469c-84ff-ca2e87dc1e48", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "AmazonWebServicesS3", + "properties": { + "destinationTable": "AWSVPCFlow", + "roleArn": "arn:aws:iam::072643944673:role/RoleName", + "sqsUrls": [ + "https://sqs.us-west-1.amazonaws.com/111111111111/sqsTestName" + ], + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "name": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftDefenderAdvancedThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficeATP", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365Project", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficePowerBI", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "c2541efb-c9a6-47fe-9501-87d1017d1512", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Dynamics365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "dynamics365CdsActivities": { + "state": "Enabled" + } + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PurviewAudit", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "dataTypes": { + "logs": { + "state": "Enabled" + } + }, + "sourceType": "MicrosoftFlow", + "connectorDefinitionName": "PowerAutomate", + "dcrConfig": null, + "tenantId": "MicrosoftFlow" + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "Qualys Vulnerability Management (CCP DEMO)", + "publisher": "Qualys", + "descriptionMarkdown": "The [Qualys Vulnerability Management (VM)](https://www.qualys.com/apps/vulnerability-management/) data connector provides the capability to ingest vulnerability host detection data into Azure Sentinel through the Qualys API. The connector provides visibility into host detection data from vulerability scans. This connector provides Azure Sentinel the capability to view dashboards, create custom alerts, and improve investigation ", + "customImage": "The image connector content", + "graphQueriesTableName": "QualysHostDetection_CL", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "{{graphQueriesTableName}}", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "Top 10 Vulerabilities detected", + "query": "{{graphQueriesTableName}}\n | mv-expand todynamic(Detections_s)\n | extend Vulnerability = tostring(Detections_s.Results)\n | summarize count() by Vulnerability\n | top 10 by count_" + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "{{graphQueriesTableName}}\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions on the workspace are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "name": "Microsoft.Web/sites permissions", + "description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)." + }, + { + "name": "Qualys API Key", + "description": "A Qualys VM API username and password is required. [See the documentation to learn more about Qualys VM API](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf)." + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": ">**NOTE:** This connector uses Azure Functions to connect to Qualys VM to pull its logs into Azure Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + }, + { + "title": "", + "description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." + }, + { + "title": "", + "description": "**STEP 1 - Configuration steps for the Qualys VM API**\n\n1. Log into the Qualys Vulnerability Management console with an administrator account, select the **Users** tab and the **Users** subtab. \n2. Click on the **New** drop-down menu and select **Users..**\n3. Create a username and password for the API account. \n4. In the **User Roles** tab, ensure the account role is set to **Manager** and access is allowed to **GUI** and **API**\n4. Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account. \n5. Log back into the console using an administrator account and modify the API accounts User Roles, removing access to **GUI**. \n6. Save all changes." + }, + { + "title": "", + "description": "**STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function**\n\n>**IMPORTANT:** Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.", + "instructions": [ + { + "parameters": { + "fillWith": [ + "WorkspaceId" + ], + "label": "Workspace ID" + }, + "type": "CopyableLabel" + }, + { + "parameters": { + "fillWith": [ + "PrimaryKey" + ], + "label": "Primary Key" + }, + "type": "CopyableLabel" + } + ] + }, + { + "title": "Option 1 - Azure Resource Manager (ARM) Template", + "description": "Use this method for automated deployment of the Qualys VM connector using an ARM Tempate.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinelqualysvmazuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the **Workspace ID**, **Workspace Key**, **API Username**, **API Password** , update the **URI**, and any additional URI **Filter Parameters** (each filter should be separated by an \"&\" symbol, no spaces.) \n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348) -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format. \n - The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion. \n> - Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details. \n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**. \n5. Click **Purchase** to deploy." + }, + { + "title": "Option 2 - Manual Deployment of Azure Functions", + "description": "Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions." + }, + { + "title": "", + "description": "**1. Create a Function App**\n\n1. From the Azure Portal, navigate to [Function App](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp), and select **+ Add**.\n2. In the **Basics** tab, ensure Runtime stack is set to **Powershell Core**. \n3. In the **Hosting** tab, ensure the **Consumption (Serverless)** plan type is selected.\n4. Make other preferrable configuration changes, if needed, then click **Create**." + }, + { + "title": "", + "description": "**2. Import Function App Code**\n\n1. In the newly created Function App, select **Functions** on the left pane and click **+ New Function**.\n2. Select **Timer Trigger**.\n3. Enter a unique Function **Name** and leave the default cron schedule of every 5 minutes, then click **Create**.\n5. Click on **Code + Test** on the left pane. \n6. Copy the [Function App Code](https://aka.ms/sentinelqualysvmazurefunctioncode) and paste into the Function App `run.ps1` editor.\n7. Click **Save**." + }, + { + "title": "", + "description": "**3. Configure the Function App**\n\n1. In the Function App, select the Function App Name and select **Configuration**.\n2. In the **Application settings** tab, select **+ New application setting**.\n3. Add each of the following seven (7) application settings individually, with their respective string values (case-sensitive): \n\t\tapiUsername\n\t\tapiPassword\n\t\tworkspaceID\n\t\tworkspaceKey\n\t\turi\n\t\tfilterParameters\n\t\ttimeInterval\n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348). The `uri` value must follow the following schema: `https:///api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=` -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.\n> - Add any additional filter parameters, for the `filterParameters` variable, that need to be appended to the URI. Each parameter should be seperated by an \"&\" symbol and should not include any spaces.\n> - Set the `timeInterval` (in minutes) to the value of `5` to correspond to the Timer Trigger of every `5` minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.\n> - Note: If using Azure Key Vault, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.\n4. Once all application settings have been entered, click **Save**." + }, + { + "title": "", + "description": "**4. Configure the host.json**.\n\nDue to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.\n\n1. In the Function App, select the Function App Name and select the **App Service Editor** blade.\n2. Click **Go** to open the editor, then select the **host.json** file under the **wwwroot** directory.\n3. Add the line `\"functionTimeout\": \"00:10:00\",` above the `managedDependancy` line \n4. Ensure **SAVED** appears on the top right corner of the editor, then exit the editor.\n\n> NOTE: If a longer timeout duration is required, consider upgrading to an [App Service Plan](https://docs.microsoft.com/azure/azure-functions/functions-scale#timeout)" + } + ] + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "APIPolling", + "properties": { + "connectorUiConfig": { + "title": "GitHub Enterprise Audit Log", + "publisher": "GitHub", + "descriptionMarkdown": "The GitHub audit log connector provides the capability to ingest GitHub logs into Azure Sentinel. By connecting GitHub audit logs into Azure Sentinel, you can view this data in workbooks, use it to create custom alerts, and improve your investigation process.", + "graphQueriesTableName": "GitHubAuditLogPolling_CL", + "graphQueries": [ + { + "metricName": "Total events received", + "legend": "GitHub audit log events", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "All logs", + "query": "{{graphQueriesTableName}}\n | take 10 " + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "SentinelKindsV2", + "value": [] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + } + ], + "customs": [ + { + "name": "GitHub API personal token Key", + "description": "You need access to GitHub personal token, the key should have 'admin:org' scope" + } + ] + }, + "instructionSteps": [ + { + "title": "Connect GitHub Enterprise Audit Log to Azure Sentinel", + "description": "Enable GitHub audit Logs. \n Follow [this](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to create or find your personal key", + "instructions": [ + { + "parameters": { + "enable": "true", + "userRequestPlaceHoldersInput": [ + { + "displayText": "Organization Name", + "requestObjectKey": "apiEndpoint", + "placeHolderName": "{{placeHolder1}}", + "placeHolderValue": "" + } + ] + }, + "type": "APIKey" + } + ] + } + ] + }, + "pollingConfig": { + "auth": { + "authType": "APIKey", + "apiKeyIdentifier": "token", + "apiKeyName": "Authorization" + }, + "request": { + "apiEndpoint": "https://api.github.com/organizations/{{placeHolder1}}/audit-log", + "rateLimitQps": 50, + "queryWindowInMin": 15, + "httpMethod": "Get", + "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ", + "retryCount": 2, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}" + } + }, + "paging": { + "pagingType": "LinkHeader", + "pageSizeParaName": "per_page" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDynamics365DataConnectorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDynamics365DataConnectorById.json new file mode 100644 index 000000000000..a6e42ba8a3d7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetDynamics365DataConnectorById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c2541efb-c9a6-47fe-9501-87d1017d1512" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "c2541efb-c9a6-47fe-9501-87d1017d1512", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Dynamics365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "dynamics365CdsActivities": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGenericUI.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGenericUI.json new file mode 100644 index 000000000000..dc9efd8ae1ad --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGenericUI.json @@ -0,0 +1,156 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "316ec55e-7138-4d63-ab18-90c8a60fd1c8" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "name": "316ec55e-7138-4d63-ab18-90c8a60fd1c8", + "etag": "\"1a00b074-0000-0100-0000-606ef5bd0000\"", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "Qualys Vulnerability Management (CCP DEMO)", + "publisher": "Qualys", + "descriptionMarkdown": "The [Qualys Vulnerability Management (VM)](https://www.qualys.com/apps/vulnerability-management/) data connector provides the capability to ingest vulnerability host detection data into Azure Sentinel through the Qualys API. The connector provides visibility into host detection data from vulerability scans. This connector provides Azure Sentinel the capability to view dashboards, create custom alerts, and improve investigation ", + "customImage": "The image connector content", + "graphQueriesTableName": "QualysHostDetection_CL", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "{{graphQueriesTableName}}", + "baseQuery": "{{graphQueriesTableName}}" + } + ], + "sampleQueries": [ + { + "description": "Top 10 Vulerabilities detected", + "query": "{{graphQueriesTableName}}\n | mv-expand todynamic(Detections_s)\n | extend Vulnerability = tostring(Detections_s.Results)\n | summarize count() by Vulnerability\n | top 10 by count_" + } + ], + "dataTypes": [ + { + "name": "{{graphQueriesTableName}}", + "lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriteria": [ + { + "type": "IsConnectedQuery", + "value": [ + "{{graphQueriesTableName}}\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": true + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions on the workspace are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "write": true, + "read": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "name": "Microsoft.Web/sites permissions", + "description": "Read and write permissions to Azure Functions to create a Function App is required. [See the documentation to learn more about Azure Functions](https://docs.microsoft.com/azure/azure-functions/)." + }, + { + "name": "Qualys API Key", + "description": "A Qualys VM API username and password is required. [See the documentation to learn more about Qualys VM API](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf)." + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": ">**NOTE:** This connector uses Azure Functions to connect to Qualys VM to pull its logs into Azure Sentinel. This might result in additional data ingestion costs. Check the [Azure Functions pricing page](https://azure.microsoft.com/pricing/details/functions/) for details." + }, + { + "title": "", + "description": ">**(Optional Step)** Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. [Follow these instructions](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) to use Azure Key Vault with an Azure Function App." + }, + { + "title": "", + "description": "**STEP 1 - Configuration steps for the Qualys VM API**\n\n1. Log into the Qualys Vulnerability Management console with an administrator account, select the **Users** tab and the **Users** subtab. \n2. Click on the **New** drop-down menu and select **Users..**\n3. Create a username and password for the API account. \n4. In the **User Roles** tab, ensure the account role is set to **Manager** and access is allowed to **GUI** and **API**\n4. Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account. \n5. Log back into the console using an administrator account and modify the API accounts User Roles, removing access to **GUI**. \n6. Save all changes." + }, + { + "title": "", + "description": "**STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function**\n\n>**IMPORTANT:** Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.", + "instructions": [ + { + "parameters": { + "fillWith": [ + "WorkspaceId" + ], + "label": "Workspace ID" + }, + "type": "CopyableLabel" + }, + { + "parameters": { + "fillWith": [ + "PrimaryKey" + ], + "label": "Primary Key" + }, + "type": "CopyableLabel" + } + ] + }, + { + "title": "Option 1 - Azure Resource Manager (ARM) Template", + "description": "Use this method for automated deployment of the Qualys VM connector using an ARM Tempate.\n\n1. Click the **Deploy to Azure** button below. \n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)](https://aka.ms/sentinelqualysvmazuredeploy)\n2. Select the preferred **Subscription**, **Resource Group** and **Location**. \n3. Enter the **Workspace ID**, **Workspace Key**, **API Username**, **API Password** , update the **URI**, and any additional URI **Filter Parameters** (each filter should be separated by an \"&\" symbol, no spaces.) \n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348) -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format. \n - The default **Time Interval** is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion. \n> - Note: If using Azure Key Vault secrets for any of the values above, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details. \n4. Mark the checkbox labeled **I agree to the terms and conditions stated above**. \n5. Click **Purchase** to deploy." + }, + { + "title": "Option 2 - Manual Deployment of Azure Functions", + "description": "Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions." + }, + { + "title": "", + "description": "**1. Create a Function App**\n\n1. From the Azure Portal, navigate to [Function App](https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.Web%2Fsites/kind/functionapp), and select **+ Add**.\n2. In the **Basics** tab, ensure Runtime stack is set to **Powershell Core**. \n3. In the **Hosting** tab, ensure the **Consumption (Serverless)** plan type is selected.\n4. Make other preferrable configuration changes, if needed, then click **Create**." + }, + { + "title": "", + "description": "**2. Import Function App Code**\n\n1. In the newly created Function App, select **Functions** on the left pane and click **+ New Function**.\n2. Select **Timer Trigger**.\n3. Enter a unique Function **Name** and leave the default cron schedule of every 5 minutes, then click **Create**.\n5. Click on **Code + Test** on the left pane. \n6. Copy the [Function App Code](https://aka.ms/sentinelqualysvmazurefunctioncode) and paste into the Function App `run.ps1` editor.\n7. Click **Save**." + }, + { + "title": "", + "description": "**3. Configure the Function App**\n\n1. In the Function App, select the Function App Name and select **Configuration**.\n2. In the **Application settings** tab, select **+ New application setting**.\n3. Add each of the following seven (7) application settings individually, with their respective string values (case-sensitive): \n\t\tapiUsername\n\t\tapiPassword\n\t\tworkspaceID\n\t\tworkspaceKey\n\t\turi\n\t\tfilterParameters\n\t\ttimeInterval\n> - Enter the URI that corresponds to your region. The complete list of API Server URLs can be [found here](https://www.qualys.com/docs/qualys-api-vmpc-user-guide.pdf#G4.735348). The `uri` value must follow the following schema: `https:///api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=` -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.\n> - Add any additional filter parameters, for the `filterParameters` variable, that need to be appended to the URI. Each parameter should be seperated by an \"&\" symbol and should not include any spaces.\n> - Set the `timeInterval` (in minutes) to the value of `5` to correspond to the Timer Trigger of every `5` minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.\n> - Note: If using Azure Key Vault, use the`@Microsoft.KeyVault(SecretUri={Security Identifier})`schema in place of the string values. Refer to [Key Vault references documentation](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references) for further details.\n4. Once all application settings have been entered, click **Save**." + }, + { + "title": "", + "description": "**4. Configure the host.json**.\n\nDue to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.\n\n1. In the Function App, select the Function App Name and select the **App Service Editor** blade.\n2. Click **Go** to open the editor, then select the **host.json** file under the **wwwroot** directory.\n3. Add the line `\"functionTimeout\": \"00:10:00\",` above the `managedDependancy` line \n4. Ensure **SAVED** appears on the top right corner of the editor, then exit the editor.\n\n> NOTE: If a longer timeout duration is required, consider upgrading to an [App Service Plan](https://docs.microsoft.com/azure/azure-functions/functions-scale#timeout)" + } + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGoogleCloudPlatformById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGoogleCloudPlatformById.json new file mode 100644 index 000000000000..2bfd83cff76c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetGoogleCloudPlatformById.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/GCP_afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "GCP_fce27b90-d6f5-4d30-991a-af509a2b50a1", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "GCP", + "properties": { + "connectorDefinitionName": "GcpConnector", + "auth": { + "serviceAccountEmail": "sentinel-service-account@project-id.iam.gserviceaccount.com", + "projectNumber": "123456789012", + "workloadIdentityProviderId": "sentinel-identity-provider", + "type": "GCP" + }, + "request": { + "projectId": "project-id", + "subscriptionNames": [ + "sentinel-subscription" + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetIoTById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetIoTById.json new file mode 100644 index 000000000000..e7e7631c301b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetIoTById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "d2e5dc7a-f3a2-429d-954b-939fa8c2932e" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/d2e5dc7a-f3a2-429d-954b-939fa8c2932e", + "name": "d2e5dc7a-f3a2-429d-954b-939fa8c2932e", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "IOT", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "subscriptionId": "c0688291-89d7-4bed-87a2-a7b1bff43f4c", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftCloudAppSecurityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftCloudAppSecurityById.json new file mode 100644 index 000000000000..170f30edbb60 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftCloudAppSecurityById.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "b96d014d-b5c2-4a01-9aba-a8058f629d42" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/b96d014d-b5c2-4a01-9aba-a8058f629d42", + "name": "b96d014d-b5c2-4a01-9aba-a8058f629d42", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftCloudAppSecurity", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + }, + "discoveryLogs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftDefenderAdvancedThreatProtectionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftDefenderAdvancedThreatProtectionById.json new file mode 100644 index 000000000000..5c35550e7ac2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftDefenderAdvancedThreatProtectionById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "06b3ccb8-1384-4bcc-aec7-852f6d57161b" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "name": "06b3ccb8-1384-4bcc-aec7-852f6d57161b", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftDefenderAdvancedThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftInsiderRiskManagementById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftInsiderRiskManagementById.json new file mode 100644 index 000000000000..26f0b8d25c2c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftInsiderRiskManagementById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "3d3e955e-33eb-401d-89a7-251c81ddd660" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficeIRM", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftPurviewInformationProtectionDataConnetorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftPurviewInformationProtectionDataConnetorById.json new file mode 100644 index 000000000000..26a65981dcfb --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftPurviewInformationProtectionDataConnetorById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftPurviewInformationProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json new file mode 100644 index 000000000000..be80fde4b08b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftThreatIntelligence", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "microsoftEmergingThreatFeed": { + "state": "Enabled", + "lookbackPeriod": "01/01/1970 00:00:00" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatProtectionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatProtectionById.json new file mode 100644 index 000000000000..648635c193e3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetMicrosoftThreatProtectionById.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "MicrosoftThreatProtection", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "incidents": { + "state": "Enabled" + }, + "alerts": { + "state": "Enabled" + } + }, + "filteredProviders": { + "alerts": [ + "microsoftDefenderForCloudApps" + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365AdvancedThreatProtectionById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365AdvancedThreatProtectionById.json new file mode 100644 index 000000000000..dd539123449b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365AdvancedThreatProtectionById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "3d3e955e-33eb-401d-89a7-251c81ddd660" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3d3e955e-33eb-401d-89a7-251c81ddd660", + "name": "3d3e955e-33eb-401d-89a7-251c81ddd660", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficeATP", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "alerts": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365ProjectDataConnetorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365ProjectDataConnetorById.json new file mode 100644 index 000000000000..46d507078056 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOffice365ProjectDataConnetorById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365Project", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficeDataConnetorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficeDataConnetorById.json new file mode 100644 index 000000000000..e997705b6036 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficeDataConnetorById.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "Office365", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "sharePoint": { + "state": "Enabled" + }, + "exchange": { + "state": "Enabled" + }, + "teams": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficePowerBIDataConnetorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficePowerBIDataConnetorById.json new file mode 100644 index 000000000000..8fc79f5fa85a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetOfficePowerBIDataConnetorById.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "OfficePowerBI", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "dataTypes": { + "logs": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetPurviewAuditDataConnectorById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetPurviewAuditDataConnectorById.json new file mode 100644 index 000000000000..43ee3e951e86 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetPurviewAuditDataConnectorById.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PurviewAudit", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "dataTypes": { + "logs": { + "state": "Enabled" + } + }, + "sourceType": "MicrosoftFlow", + "connectorDefinitionName": "PowerAutomate", + "dcrConfig": null, + "tenantId": "MicrosoftFlow" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetRestApiPollerById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetRestApiPollerById.json new file mode 100644 index 000000000000..ea8af9fd37ec --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetRestApiPollerById.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "RestApiPoller_fce27b90-d6f5-4d30-991a-af509a2b50a1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/RestApiPoller_afef3743-0c88-469c-84ff-ca2e87dc1e48", + "name": "RestApiPoller_fce27b90-d6f5-4d30-991a-af509a2b50a1", + "type": "Microsoft.SecurityInsights/dataConnectors", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "RestApiPoller", + "properties": { + "connectorDefinitionName": "RestApiPollerDefinition", + "auth": { + "type": "APIKey", + "apiKey": "6bec40cf957de430a6f1f2baa056b99a4fac9ea0", + "apiKeyName": "X-Cisco-Meraki-API-Key" + }, + "dcrConfig": { + "streamName": "Meraki", + "dataCollectionEndpoint": "data collection Endpoint", + "dataCollectionRuleImmutableId": "data collection rule immutableId" + }, + "request": { + "apiEndpoint": "https://api.meraki.com/api/v1/organizations/573083052582915028/networks", + "rateLimitQPS": 10, + "queryWindowInMin": 6, + "httpMethod": "GET", + "queryTimeFormat": "UnixTimestamp", + "startTimeAttributeName": "t0", + "endTimeAttributeName": "t1", + "retryCount": 3, + "timeoutInSeconds": 60, + "headers": { + "Accept": "application/json", + "User-Agent": "Scuba" + }, + "queryParameters": { + "perPage": 1000 + } + }, + "paging": { + "pagingType": "LinkHeader" + }, + "response": { + "eventsJsonPaths": [ + "$" + ] + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceById.json new file mode 100644 index 000000000000..6af93b35f312 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceById.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c345bf40-8509-4ed2-b947-50cb773aaf04" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c345bf40-8509-4ed2-b947-50cb773aaf04", + "name": "c345bf40-8509-4ed2-b947-50cb773aaf04", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligence", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "tipLookbackPeriod": "2020-01-01T13:00:30.123Z", + "dataTypes": { + "indicators": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceTaxiiById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceTaxiiById.json new file mode 100644 index 000000000000..eff55c156fb8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/dataConnectors/GetThreatIntelligenceTaxiiById.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "c39bb458-02a7-4b3f-b0c8-71a1d2692652" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/c39bb458-02a7-4b3f-b0c8-71a1d2692652", + "name": "c39bb458-02a7-4b3f-b0c8-71a1d2692652", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "ThreatIntelligenceTaxii", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "tenantId": "2070ecc9-b4d5-4ae4-adaa-936fa1954fa8", + "workspaceId": "8b014a77-4695-4ef4-96bb-6623afb121a2", + "friendlyName": "My TI Taxii Connector", + "taxiiServer": "https://mytaxiiserver.com/taxiing/v2/api", + "collectionId": "e0b1f32d-1188-48f7-a7a3-de71924e4b5e", + "userName": "", + "password": "", + "taxiiLookbackPeriod": "2020-01-01T13:00:30.123Z", + "pollingFrequency": "OnceADay", + "dataTypes": { + "taxiiClient": { + "state": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetGeodataWithWorkspaceByIp.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetGeodataWithWorkspaceByIp.json new file mode 100644 index 000000000000..a4cb1111214f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetGeodataWithWorkspaceByIp.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "enrichmentType": "main", + "ipAddressBody": { + "ipAddress": "1.2.3.4" + } + }, + "responses": { + "200": { + "body": { + "asn": "12345", + "carrier": "Microsoft", + "city": "Redmond", + "cityCf": 90, + "continent": "north america", + "country": "united states", + "countryCf": 99, + "ipAddr": "1.2.3.4", + "ipRoutingType": "fixed", + "latitude": "40.2436", + "longitude": "-100.8891", + "organization": "Microsoft", + "organizationType": "tech", + "region": "western usa", + "state": "washington", + "stateCf": null, + "stateCode": "wa" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetWhoisWithWorkspaceByDomainName.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetWhoisWithWorkspaceByDomainName.json new file mode 100644 index 000000000000..137c2dc10c64 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/enrichment/GetWhoisWithWorkspaceByDomainName.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "enrichmentType": "main", + "domainBody": { + "domain": "microsoft.com" + } + }, + "responses": { + "200": { + "body": { + "domain": "microsoft.com", + "server": null, + "created": "2021-09-01T16:15:01.187045Z", + "updated": "2021-09-01T16:15:01.187045Z", + "expires": null, + "parsedWhois": { + "registrar": { + "name": "MarkMonitor, Inc", + "abuseContactPhone": "12083895770", + "abuseContactEmail": "abuse@microsoft.com", + "url": "http://www.markmonitor.com", + "whoisServer": "whois.markmonitor.com" + }, + "contacts": { + "admin": { + "name": "Administrator", + "org": "Microsoft", + "street": [ + "One Microsoft Way" + ], + "city": null, + "state": "WA", + "postal": "98052", + "country": "United States", + "phone": "1-800-555-1234", + "fax": null, + "email": "mail@microsoft.com" + }, + "registrant": null, + "billing": { + "name": "Administrator", + "org": "Microsoft", + "street": [ + "One Microsoft Way" + ], + "city": null, + "state": "WA", + "postal": "98052", + "country": "United States", + "phone": "1-800-555-1234", + "fax": null, + "email": "mail@microsoft.com" + }, + "tech": { + "name": "Administrator", + "org": "Microsoft", + "street": [ + "One Microsoft Way" + ], + "city": null, + "state": "WA", + "postal": "98052", + "country": "United States", + "phone": "1-800-555-1234", + "fax": null, + "email": "mail@microsoft.com" + } + }, + "nameServers": [ + "ns1-205.azure-dns.com", + "ns2-205.azure-dns.net", + "ns3-205.azure-dns.org", + "ns4-205.azure-dns.info" + ], + "statuses": [ + "clientUpdateProhibited", + "clientTransferProhibited", + "clientDeleteProhibited", + "serverUpdateProhibited", + "serverTransferProhibited", + "serverDeleteProhibited" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAccountEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAccountEntityById.json new file mode 100644 index 000000000000..5aefa5b6fbcd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAccountEntityById.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Account", + "properties": { + "friendlyName": "administrator", + "accountName": "administrator", + "ntDomain": "domain", + "upnSuffix": "contoso", + "sid": "S-1-5-18", + "aadTenantId": "70fbdad0-7441-4564-b2b5-2b8862d0fee0", + "aadUserId": "f7033626-2572-46b1-bba0-06646f4f95b3", + "puid": "ee3cb2d8-14ba-45ef-8009-d6f1cacfa04d", + "isDomainJoined": true, + "objectGuid": "11227b78-3c6e-436e-a2a2-02fc7662eca0", + "dnsDomain": "contoso.com" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAzureResourceEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAzureResourceEntityById.json new file mode 100644 index 000000000000..5fd0204b5cb2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetAzureResourceEntityById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "AzureResource", + "properties": { + "friendlyName": "vm1", + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachines/vm1", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetCloudApplicationEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetCloudApplicationEntityById.json new file mode 100644 index 000000000000..0e6c5ebc8311 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetCloudApplicationEntityById.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "CloudApplication", + "properties": { + "friendlyName": "AppName", + "appId": 1, + "appName": "AppName", + "instanceName": "InstanceName" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetDnsEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetDnsEntityById.json new file mode 100644 index 000000000000..7947fa8ad807 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetDnsEntityById.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "f4e74920-f2c0-4412-a45f-66d94fdf01f8" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/f4e74920-f2c0-4412-a45f-66d94fdf01f8", + "name": "f4e74920-f2c0-4412-a45f-66d94fdf01f8", + "type": "Microsoft.SecurityInsights/entities", + "kind": "DnsResolution", + "properties": { + "friendlyName": "domain", + "domainName": "domain", + "ipAddressEntityIds": [ + "475d3120-33e0-4841-9f1c-a8f15a801d19" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetEntities.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetEntities.json new file mode 100644 index 000000000000..f3a48bcd54eb --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetEntities.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Account", + "properties": { + "friendlyName": "administrator", + "accountName": "administrator", + "ntDomain": "domain", + "upnSuffix": "contoso", + "sid": "S-1-5-18", + "aadTenantId": "70fbdad0-7441-4564-b2b5-2b8862d0fee0", + "aadUserId": "f7033626-2572-46b1-bba0-06646f4f95b3", + "puid": "ee3cb2d8-14ba-45ef-8009-d6f1cacfa04d", + "isDomainJoined": true, + "objectGuid": "11227b78-3c6e-436e-a2a2-02fc7662eca0" + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/fed9fe89-dce8-40f2-bf44-70f23fe93b3c", + "name": "fed9fe89-dce8-40f2-bf44-70f23fe93b3c", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Host", + "properties": { + "friendlyName": "vm1", + "dnsDomain": "contoso", + "ntDomain": "domain", + "hostName": "vm1", + "netBiosName": "contoso", + "azureID": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachines/vm1", + "omsAgentID": "70fbdad0-7441-4564-b2b5-2b8862d0fee0", + "osFamily": "Windows", + "osVersion": "1.0", + "isDomainJoined": true + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/af378b21-b4aa-4fe7-bc70-13f8621a322f", + "name": "af378b21-b4aa-4fe7-bc70-13f8621a322f", + "type": "Microsoft.SecurityInsights/entities", + "kind": "File", + "properties": { + "friendlyName": "cmd.exe", + "directory": "C:\\Windows\\System32", + "fileName": "cmd.exe" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileEntityById.json new file mode 100644 index 000000000000..da807e03a043 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileEntityById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "af378b21-b4aa-4fe7-bc70-13f8621a322f" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/af378b21-b4aa-4fe7-bc70-13f8621a322f", + "name": "af378b21-b4aa-4fe7-bc70-13f8621a322f", + "type": "Microsoft.SecurityInsights/entities", + "kind": "File", + "properties": { + "friendlyName": "cmd.exe", + "directory": "C:\\Windows\\System32", + "fileName": "cmd.exe" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileHashEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileHashEntityById.json new file mode 100644 index 000000000000..3bdaff79c709 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetFileHashEntityById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "ea359fa6-c1e5-f878-e105-6344f3e399a1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/ea359fa6-c1e5-f878-e105-6344f3e399a1", + "name": "ea359fa6-c1e5-f878-e105-6344f3e399a1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "FileHash", + "properties": { + "friendlyName": "E923636F1093C414AAB39F846E9D7A372BEEFA7B628B28179197E539C56AA0F0(SHA256)", + "hashValue": "E923636F1093C414AAB39F846E9D7A372BEEFA7B628B28179197E539C56AA0F0", + "algorithm": "SHA256" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetHostEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetHostEntityById.json new file mode 100644 index 000000000000..06aaebaa6f42 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetHostEntityById.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Host", + "properties": { + "friendlyName": "vm1", + "dnsDomain": "contoso", + "ntDomain": "domain", + "hostName": "vm1", + "netBiosName": "contoso", + "azureID": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Compute/virtualMachines/vm1", + "omsAgentID": "70fbdad0-7441-4564-b2b5-2b8862d0fee0", + "osFamily": "Windows", + "osVersion": "1.0", + "isDomainJoined": true + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIoTDeviceEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIoTDeviceEntityById.json new file mode 100644 index 000000000000..7270b45e66d4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIoTDeviceEntityById.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "IoTDevice", + "properties": { + "friendlyName": "device1", + "deviceId": "device1", + "deviceName": "device1", + "iotHubEntityId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/8b2d9401-f953-e89d-2583-be9b4975870c", + "nicEntityIds": [ + "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/6ee379bd-ace8-44cf-ab10-ee669a1b71e2" + ], + "deviceType": "Industrial", + "firmwareVersion": "20.11", + "importance": "Normal", + "isAuthorized": true, + "isProgramming": false, + "isScanner": false, + "model": "demo-model", + "protocols": [ + "CIP", + "EtherNet/IP" + ], + "operatingSystem": "Windows", + "purdueLayer": "ProcessControl", + "sensor": "demo-sensor", + "site": "demo-site", + "vendor": "demo-vendor", + "zone": "zone" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIpEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIpEntityById.json new file mode 100644 index 000000000000..3d944e15b97d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetIpEntityById.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Ip", + "properties": { + "friendlyName": "10.3.2.8", + "address": "10.3.2.8" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailClusterEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailClusterEntityById.json new file mode 100644 index 000000000000..c46d8ff3878a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailClusterEntityById.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "MailCluster", + "properties": { + "friendlyName": "ClusterSourceIdentifier", + "networkMessageIds": [ + "ccfce855-e02f-491b-a1cc-5bafb371ad0c" + ], + "countByDeliveryStatus": { + "deliveryStatus": 5 + }, + "countByThreatType": { + "threatType": 6 + }, + "countByProtectionStatus": { + "protectionStatus": 65 + }, + "threats": [ + "thrreat1", + "thread2" + ], + "query": "kqlFilter", + "queryTime": "2021-09-01T01:42:01.6026755Z", + "source": "ClusterSourceIdentifier", + "clusterSourceIdentifier": "cluster source identifier", + "clusterSourceType": "Similarity", + "clusterGroup": "cluster group" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailMessageEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailMessageEntityById.json new file mode 100644 index 000000000000..b35be2956f21 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailMessageEntityById.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "MailMessage", + "properties": { + "friendlyName": "cmd.exe", + "fileEntityIds": [ + "ccfce855-e02f-491b-a1cc-5bafb371ad0c" + ], + "recipient": "recipient", + "urls": [ + "http://moqbrarcwmnk.banxhdcojlg.biz" + ], + "threats": [ + "thrreat1", + "thread2" + ], + "p1Sender": "email@fake.com", + "p1SenderDisplayName": "p1 sender display name", + "p1SenderDomain": "p1 sender domain", + "senderIP": "1.23.34.43", + "p2Sender": "the sender", + "deliveryAction": "Blocked", + "p2SenderDisplayName": "p2 sender display name", + "p2SenderDomain": "p2 Sender Domain", + "internetMessageId": "message id", + "subject": "subject", + "language": "language", + "threatDetectionMethods": [ + "thrreat1", + "thread2" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailboxEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailboxEntityById.json new file mode 100644 index 000000000000..8ca3a06b85d9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMailboxEntityById.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Mailbox", + "properties": { + "friendlyName": "emailAddress1", + "displayName": "display name", + "mailboxPrimaryAddress": "emailAddress1", + "upn": "upn1", + "externalDirectoryObjectId": "18cc8fdc-e169-4451-983a-bd027db286eb" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMalwareEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMalwareEntityById.json new file mode 100644 index 000000000000..8ae727e1499c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetMalwareEntityById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "af378b21-b4aa-4fe7-bc70-13f8621a322f" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/af378b21-b4aa-4fe7-bc70-13f8621a322f", + "name": "af378b21-b4aa-4fe7-bc70-13f8621a322f", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Malware", + "properties": { + "malwareName": "Win32/Toga!rfn", + "category": "Trojan", + "friendlyName": "Win32/Toga!rfn" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetProcessEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetProcessEntityById.json new file mode 100644 index 000000000000..6753e3ecf8c6 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetProcessEntityById.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "7264685c-038c-42c6-948c-38e14ef1fb98" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/7264685c-038c-42c6-948c-38e14ef1fb98", + "name": "7264685c-038c-42c6-948c-38e14ef1fb98", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Process", + "properties": { + "friendlyName": "cmd.exe", + "processId": "0x2aa48", + "commandLine": "\"cmd\"", + "imageFileEntityId": "bba7b47b-c1c1-4021-b568-5b07b9292f5e" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetQueries.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetQueries.json new file mode 100644 index 000000000000..663836935ce5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetQueries.json @@ -0,0 +1,456 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "kind": "Insight" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1/queries/6db7f5d1-f41e-46c2-b935-230b36a569e6", + "name": "6db7f5d1-f41e-46c2-b935-230b36a569e6", + "type": "Microsoft.SecurityInsights/entities/queries", + "kind": "Insight", + "properties": { + "displayName": "Actions on account", + "description": "Summary of actions taken on the specified account, grouped by action: password resets and changes, account lockouts (policy or admin), account creation and deletion, account enabled and disabled\n", + "baseQuery": "let GetAccountActions = (v_Account_Name:string, v_Account_NTDomain:string, v_Account_UPNSuffix:string, v_Account_AADUserId:string, v_Account_SID:string){\nAuditLogs\n| where OperationName in~ ('Delete user', 'Change user password', 'Reset user password', 'Change password (self-service)', 'Reset password (by admin)', 'Reset password (self-service)', 'Update user')\n| extend UserPrincipalName = tostring(TargetResources[0].userPrincipalName)\n| extend Account_Name = tostring(split(UserPrincipalName, '@')[0])\n| extend Account_UPNSuffix = tostring(split(UserPrincipalName, '@')[1])\n| extend Action = tostring(parse_json(tostring(parse_json(tostring(TargetResources[0].modifiedProperties))[0])))\n| extend ModifiedProperty = parse_json(Action).displayName\n| extend ModifiedValue = parse_json(Action).newValue\n| extend Account_AADUserId = tostring(TargetResources[0].id)\n| extend DisableUser = iif(ModifiedProperty =~ 'AccountEnabled' and ModifiedValue =~ '[false]', 'True', 'False')\n| union isfuzzy=true (\nSecurityEvent\n| where EventID in (4720, 4722, 4723, 4724, 4725, 4726, 4740)\n| extend OperationName = tostring(EventID)\n| where AccountType =~ \"user\" or isempty(AccountType)\n| extend Account_Name = TargetUserName, Account_NTDomain = TargetDomainName, Account_SID = TargetSid\n)\n| where (Account_Name =~ v_Account_Name and (Account_UPNSuffix =~ v_Account_UPNSuffix or Account_NTDomain =~ v_Account_NTDomain)) or Account_AADUserId =~ v_Account_AADUserId or Account_SID =~ v_Account_SID\n};\nGetAccountActions('CTFFUser4', '', 'seccxp.ninja', '', '')\n", + "tableQuery": { + "columnsDefinitions": [ + { + "header": "Action", + "outputType": "String", + "supportDeepLink": false + }, + { + "header": "Most Recent", + "outputType": "Date", + "supportDeepLink": false + }, + { + "header": "Count", + "outputType": "Number", + "supportDeepLink": true + } + ], + "queriesDefinitions": [ + { + "filter": "where OperationName in~ ('Change user password', 'Reset user password', 'Change password (self-service)', 'Reset password (by admin)', 'Reset password (self-service)', '4724', '4723')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('Blocked from self-service password reset', '4740')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName == '4725' or (OperationName =~ 'Update user' and DisableUser =~ 'True')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('Add user', '4720')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('Delete user', '4726')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('4725', 'Blocked from self-service password reset', '4740') or (OperationName =~ 'Update user' and DisableUser =~ 'True')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('4722', '4767') or (OperationName =~ 'Update user' and DisableUser =~ 'False')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where OperationName in~ ('Update user','4738')", + "summarize": "summarize MostRecent = max(TimeGenerated), Count = count() by OperationName", + "project": "project Title = OperationName, MostRecent, Count", + "linkColumnsDefinitions": [ + { + "projectedName": "Count", + "Query": "{{BaseQuery}} | " + } + ] + } + ] + }, + "chartQuery": { + "title": "Actions by type", + "dataSets": [ + { + "query": "summarize Count = count() by bin(TimeGenerated, 1h), OperationName", + "xColumnName": "TimeGenerated", + "yColumnName": "Count", + "legendColumnName": "OperationName" + } + ], + "type": "BarChart" + }, + "additionalQuery": { + "text": "See all account activity", + "query": "project TimeGenerated, UserPrincipalName, Account_Name, OperationName, Activity, DisableUser, TargetSid, AADUserId, InitiatedBy, AADTenantId, AccountType, Computer, SubjectAccount, SubjectUserSid, EventData" + }, + "defaultTimeRange": { + "beforeRange": "12h", + "afterRange": "12h" + }, + "referenceTimeRange": null, + "dataTypes": [ + { + "dataType": "AuditLogs" + }, + { + "dataType": "SecurityEvent" + } + ], + "inputEntityType": "Account", + "requiredInputFieldsSets": [ + [ + "Account_Name", + "Account_NTDomain" + ], + [ + "Account_Name", + "Account_UPNSuffix" + ], + [ + "Account_AADUserId" + ], + [ + "Account_SID" + ] + ], + "entitiesFilter": {} + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1/queries/0a5d7b14-b485-450a-a0ac-4100c860ac32", + "name": "0a5d7b14-b485-450a-a0ac-4100c860ac32", + "type": "Microsoft.SecurityInsights/entities/queries", + "kind": "Insight", + "properties": { + "displayName": "Anomalously high office operation count", + "description": "Highlight office operations of the user with anomalously high count compared to those observed in the preceding 14 days.", + "baseQuery": "let AScoreThresh = 3; \nlet maxAnomalies = 3;\nlet BeforeRange = 12d; \nlet EndTime = todatetime('{{EndTimeUTC}}'); \nlet StartTime = todatetime('{{StartTimeUTC}}');\nlet numDays = tolong((EndTime-StartTime)/1d); \nlet userData = (v_Account_Name:string, v_Account_UPNSuffix:string) { \n OfficeActivity \n | extend splitUserId=split(UserId, '@')\n | extend Account_Name = tostring(splitUserId[0]), Account_UPNSuffix = tostring(splitUserId[1])\n | where Account_Name =~ v_Account_Name and Account_UPNSuffix =~ v_Account_UPNSuffix }; \nuserData('CTFFUser4', 'seccxp.ninja')\n", + "tableQuery": { + "columnsDefinitions": [ + { + "header": "Operation", + "outputType": "String", + "supportDeepLink": true + }, + { + "header": "Expected Count", + "outputType": "Number", + "supportDeepLink": false + }, + { + "header": "Actual Count", + "outputType": "Number", + "supportDeepLink": false + } + ], + "queriesDefinitions": [ + { + "filter": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by Operation \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost=maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_ \n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore-maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies \n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,postExpectedCount) \n| where maxAnomalyScorePost > AScoreThresh \n| order by maxAnomalyScorePost desc\n", + "summarize": "take 1", + "project": "project Operation, expectedCount=round(postExpectedCount,2), actualCount=postActualCount, anomalyScore=round(postAnomalyScore,2)", + "linkColumnsDefinitions": [ + { + "projectedName": "Operation", + "Query": "{{BaseQuery}} \n| where TimeGenerated between (StartTime .. EndTime) \n| where Operation == ''\n" + } + ] + } + ] + }, + "chartQuery": { + "title": "Anomalous operation timeline", + "dataSets": [ + { + "query": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by Operation \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost=maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_ \n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore-maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies \n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,round(postExpectedCount,2)) \n| where maxAnomalyScorePost > AScoreThresh \n| order by maxAnomalyScorePost desc \n| take 1 \n| project Operation, TimeGenerated, count_\n| mvexpand TimeGenerated, count_ | project todatetime(TimeGenerated), toint(count_), Operation\n", + "xColumnName": "TimeGenerated", + "yColumnName": "count_", + "legendColumnName": "Operation" + } + ], + "type": "LineChart" + }, + "additionalQuery": { + "text": "Query all anomalous operations", + "query": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by Operation \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost = maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_\n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore - maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies\n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,postExpectedCount) \n| where maxAnomalyScorePost > AScoreThresh | order by maxAnomalyScorePost desc \n| project Operation, expectedCount=round(postExpectedCount,2), actualCount=postActualCount, anomalyScore=round(postAnomalyScore,2)\n" + }, + "defaultTimeRange": { + "beforeRange": "1d", + "afterRange": "0d" + }, + "referenceTimeRange": { + "beforeRange": "12d" + }, + "dataTypes": [ + { + "dataType": "OfficeActivity" + } + ], + "inputEntityType": "Account", + "requiredInputFieldsSets": [ + [ + "Account_Name", + "Account_UPNSuffix" + ] + ], + "entitiesFilter": {} + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1/queries/e6cf68e6-1eca-4fbb-9fad-6280f2a9476e", + "name": "e6cf68e6-1eca-4fbb-9fad-6280f2a9476e", + "type": "Microsoft.SecurityInsights/entities/queries", + "kind": "Insight", + "properties": { + "displayName": "Resource access", + "description": "Provides the count and distinct resource accesses by a given user account\n", + "baseQuery": "let Operations = dynamic([\"FileDownloaded\", \"FileUploaded\"]);\nlet UserOperationToSharePoint = (v_Account_Name:string, v_Account_UPNSuffix:string) {\nOfficeActivity\n// Select sharepoint activity that is relevant\n| where RecordType in~ ('SharePointFileOperation')\n| where Operation in~ (Operations)\n| extend Account_Name = tostring(split(UserId, '@')[0])\n| extend Account_UPNSuffix = tostring(split(UserId, '@')[1])\n| where Account_Name =~ v_Account_Name and Account_UPNSuffix =~ v_Account_UPNSuffix\n| project TimeGenerated, Account_Name, Account_UPNSuffix, UserId, OfficeId, RecordType, Operation, OrganizationId, UserType, UserKey, OfficeWorkload, OfficeObjectId, ClientIP, ItemType, UserAgent, Site_Url, SourceRelativeUrl, SourceFileName, SourceFileExtension , Start_Time , ElevationTime , TenantId, SourceSystem , Type\n};\nUserOperationToSharePoint ('CTFFUser4','seccxp.ninja')\n", + "tableQuery": { + "columnsDefinitions": [ + { + "header": "Resource Type", + "outputType": "String", + "supportDeepLink": false + }, + { + "header": "Distinct Resources", + "outputType": "Number", + "supportDeepLink": true + }, + { + "header": "Total Resources", + "outputType": "Number", + "supportDeepLink": true + }, + { + "header": "IPAddress(es)", + "outputType": "String", + "supportDeepLink": false + } + ], + "queriesDefinitions": [ + { + "filter": "where Operation =~ 'FileUploaded'", + "summarize": "summarize DistinctResources = dcount(SourceFileName), TotalResources = count(SourceFileName), IPAddresses = make_set(ClientIP) by Operation", + "project": "project Title = Operation, DistinctResources, TotalResources, IPAddresses = case(array_length(IPAddresses) == 1, tostring(IPAddresses[0]), array_length(IPAddresses) > 1, 'Many', 'None')", + "linkColumnsDefinitions": [ + { + "projectedName": "DistinctResources", + "Query": "{{BaseQuery}} | " + }, + { + "projectedName": "TotalResources", + "Query": "{{BaseQuery}} | " + } + ] + }, + { + "filter": "where Operation =~ 'FileDownloaded'", + "summarize": "summarize DistinctResources = dcount(SourceFileName), TotalResources = count(SourceFileName), IPAddresses = make_set(ClientIP) by Operation", + "project": "project Title = Operation, DistinctResources, TotalResources, IPAddresses = case(array_length(IPAddresses) == 1, tostring(IPAddresses[0]), array_length(IPAddresses) > 1, 'Many', 'None')", + "linkColumnsDefinitions": [ + { + "projectedName": "DistinctResources", + "Query": "{{BaseQuery}} | " + }, + { + "projectedName": "TotalResources", + "Query": "{{BaseQuery}} | " + } + ] + } + ] + }, + "chartQuery": { + "title": "Resource access over time", + "dataSets": [ + { + "query": "summarize DistinctResources = dcountif(Operation, Operation =~ 'FileUploaded'), TotalResources = countif(Operation =~ 'FileUploaded') by bin(TimeGenerated, 1h) | extend Legend = 'File Uploads'", + "xColumnName": "TimeGenerated", + "yColumnName": "TotalResources", + "legendColumnName": "Legend" + }, + { + "query": "summarize DistinctResources = dcountif(Operation, Operation =~ 'FileDownloaded'), TotalResources = countif(Operation =~ 'FileDownloaded') by bin(TimeGenerated, 1h) | extend Legend = 'File Downloads'", + "xColumnName": "TimeGenerated", + "yColumnName": "TotalResources", + "legendColumnName": "Legend" + } + ], + "type": "LineChart" + }, + "additionalQuery": { + "text": "See all resource activity", + "query": "where Operation in~ (Operations)" + }, + "defaultTimeRange": { + "beforeRange": "12h", + "afterRange": "12h" + }, + "referenceTimeRange": null, + "dataTypes": [ + { + "dataType": "OfficeActivity" + } + ], + "inputEntityType": "Account", + "requiredInputFieldsSets": [ + [ + "Account_Name", + "Account_UPNSuffix" + ], + [ + "Account_AADUserId" + ] + ], + "entitiesFilter": {} + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1/queries/cae8d0aa-aa45-4d53-8d88-17dd64ffd4e4", + "name": "cae8d0aa-aa45-4d53-8d88-17dd64ffd4e4", + "type": "Microsoft.SecurityInsights/entities/queries", + "kind": "Insight", + "properties": { + "displayName": "Anomalously high Azure sign-in result count", + "description": "Highlight Azure sign-in results by the user principal with anomalously high count compared to those observed in the preceding 14 days.", + "baseQuery": "let AScoreThresh=3; \nlet maxAnomalies=3; \nlet BeforeRange = 12d; \nlet EndTime=todatetime('{{EndTimeUTC}}');\nlet StartTime = todatetime('{{StartTimeUTC}}'); \nlet numDays = tolong((EndTime-StartTime)/1d); \nlet userData = (v_Account_Name:string, v_Account_UPNSuffix:string, v_Account_AADUserId:string) { \n SigninLogs \n | where TimeGenerated between ((StartTime-BeforeRange) .. EndTime)\n | extend splitUserId=split(UserPrincipalName, '@')\n | extend Account_Name = tostring(splitUserId[0]), Account_UPNSuffix = tostring(splitUserId[1])\n | where (Account_Name =~ v_Account_Name and Account_UPNSuffix =~ v_Account_UPNSuffix) or UserId =~ v_Account_AADUserId };\nuserData('CTFFUser4', 'seccxp.ninja', '')\n", + "tableQuery": { + "columnsDefinitions": [ + { + "header": "Result Description", + "outputType": "String", + "supportDeepLink": true + }, + { + "header": "Expected Count", + "outputType": "Number", + "supportDeepLink": false + }, + { + "header": "Actual Count", + "outputType": "Number", + "supportDeepLink": false + } + ], + "queriesDefinitions": [ + { + "filter": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by ResultDescription \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost = maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_ \n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore - maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies \n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,postExpectedCount) \n| where maxAnomalyScorePost > AScoreThresh \n| order by maxAnomalyScorePost desc\n", + "summarize": "take 1", + "project": "project ResultDescription, expectedCount=round(postExpectedCount,2), actualCount=postActualCount, anomalyScore=round(postAnomalyScore,2)", + "linkColumnsDefinitions": [ + { + "projectedName": "ResultDescription", + "Query": "{{BaseQuery}} \n| where TimeGenerated between (StartTime .. EndTime) \n| where ResultDescription == ''\n" + } + ] + } + ] + }, + "chartQuery": { + "title": "Anomalous sign-in result timeline", + "dataSets": [ + { + "query": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by ResultDescription \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost = maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_ \n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore - maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies \n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,round(postExpectedCount,2)) \n| where maxAnomalyScorePost > AScoreThresh \n| order by maxAnomalyScorePost desc \n| take 1 \n| project ResultDescription, TimeGenerated, count_ \n| mvexpand TimeGenerated, count_ \n| project todatetime(TimeGenerated), toint(count_), ResultDescription \n", + "xColumnName": "TimeGenerated", + "yColumnName": "count_", + "legendColumnName": "ResultDescription" + } + ], + "type": "LineChart" + }, + "additionalQuery": { + "text": "Query all anomalous sign-in results", + "query": "make-series count() default=0 on TimeGenerated from (StartTime - BeforeRange) to EndTime step 1d by ResultDescription \n| extend (anomalies,anomalyScore, expectedCount)=series_decompose_anomalies(count_,AScoreThresh,7,'linefit',numDays, 'ctukey') \n| extend count1=count_, TimeGenerated1=TimeGenerated, anomalyScore1=anomalyScore\n| mv-apply count1 to typeof(long), TimeGenerated1 to typeof(datetime), anomalyScore1 to typeof(double), anomalies to typeof(long) on (summarize totAnomalies=sumif(abs(anomalies), TimeGenerated1 < StartTime), baseStd=stdevif(count1, TimeGenerated1 < StartTime), baseAvg=avgif(count1, TimeGenerated1 < StartTime), maxCountPost=maxif(count1,TimeGenerated1 >= StartTime), maxAnomalyScorePost = maxif(anomalyScore1, TimeGenerated1 >= StartTime)) \n| extend count1=count_\n| mv-apply count1 to typeof(long), anomalyScore to typeof(double), expectedCount to typeof(double) on ( summarize (dummy, postExpectedCount, postActualCount)=arg_min(abs(anomalyScore - maxAnomalyScorePost), expectedCount, count1) ) \n| where totAnomalies < maxAnomalies\n| extend postAnomalyScore=iff(baseStd == 0 and maxCountPost > tolong(count_[0]),1000.0,maxAnomalyScorePost), postExpectedCount=iff(postExpectedCount < 0,0.0,postExpectedCount) \n| where maxAnomalyScorePost > AScoreThresh \n| order by maxAnomalyScorePost desc \n| project ResultDescription, expectedCount=round(postExpectedCount,2), actualCount=postActualCount, anomalyScore=round(postAnomalyScore,2)\n" + }, + "defaultTimeRange": { + "beforeRange": "1d", + "afterRange": "0d" + }, + "referenceTimeRange": { + "beforeRange": "12d" + }, + "dataTypes": [ + { + "dataType": "SigninLogs" + } + ], + "inputEntityType": "Account", + "requiredInputFieldsSets": [ + [ + "Account_Name", + "Account_UPNSuffix" + ], + [ + "Account_AADUserId" + ] + ], + "entitiesFilter": {} + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryKeyEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryKeyEntityById.json new file mode 100644 index 000000000000..32c4e718e641 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryKeyEntityById.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "RegistryKey", + "properties": { + "friendlyName": "SOFTWARE", + "hive": "HKEY_LOCAL_MACHINE", + "key": "SOFTWARE" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryValueEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryValueEntityById.json new file mode 100644 index 000000000000..c57580d0facf --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetRegistryValueEntityById.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "dc44bd11-b348-4d76-ad29-37bf7aa41356" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/dc44bd11-b348-4d76-ad29-37bf7aa41356", + "name": "dc44bd11-b348-4d76-ad29-37bf7aa41356", + "type": "Microsoft.SecurityInsights/entities", + "kind": "RegistryValue", + "properties": { + "friendlyName": "Data", + "valueName": "Name", + "valueData": "Data", + "valueType": "String", + "keyEntityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityAlertEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityAlertEntityById.json new file mode 100644 index 000000000000..5237e01937fa --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityAlertEntityById.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "4aa486e0-6f85-41af-99ea-7acdce7be6c8" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/4aa486e0-6f85-41af-99ea-7acdce7be6c8", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "SecurityAlert", + "properties": { + "systemAlertId": "4aa486e0-6f85-41af-99ea-7acdce7be6c8", + "intent": "Unknown", + "alertDisplayName": "Suspicious account detected", + "description": "", + "confidenceLevel": "Unknown", + "severity": "Medium", + "vendorName": "Microsoft", + "productName": "Azure Sentinel", + "productComponentName": "Scheduled Alerts", + "alertType": "c8c99641-985d-4e4e-8e91-fb3466cd0e5b_46c7b6c0-ff43-44dd-8b4d-ceffff7aa7df", + "providerAlertId": "c2bafff9-fb31-41d0-a177-ecbff7a02ffe", + "processingEndTime": "2019-07-06T13:56:53.5392366Z", + "status": "New", + "endTimeUtc": "2021-09-01T13:21:45.926185Z", + "startTimeUtc": "2021-09-01T08:21:45.926185Z", + "timeGenerated": "2021-09-01T13:56:53.5392366Z", + "tactics": [ + "Persistence", + "LateralMovement" + ], + "additionalData": { + "Query": "Heartbeat \n| extend AccountCustomEntity = \"administrator\"", + "Query Period": "05:00:00", + "Trigger Operator": "GreaterThan", + "Trigger Threshold": "200", + "Search Query Results Overall Count": "203", + "Total Account Entities": "1" + }, + "friendlyName": "Suspicious account detected", + "alertLink": "https://portal.azure.com/#blade/Microsoft_Azure_Security/AlertBlade/alertId/2518119885989999999_4aa486e0-6f85-41af-99ea-7acdce7be6c8/subscriptionId/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/myRg/myWorkspace/referencedFrom/alertDeepLink/location/centralus" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityGroupEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityGroupEntityById.json new file mode 100644 index 000000000000..977a575c0296 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSecurityGroupEntityById.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "SecurityGroup", + "properties": { + "friendlyName": "Name", + "distinguishedName": "Name", + "sid": "Sid", + "objectGuid": "fb1b8e04-d944-4986-b39a-1ce9adedcd98" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSubmissionMailEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSubmissionMailEntityById.json new file mode 100644 index 000000000000..2a39b0653b4c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetSubmissionMailEntityById.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "SubmissionMail", + "properties": { + "friendlyName": "recipient", + "submissionId": "5bb3d8fe-54bc-499c-bc21-86fe8df2a184", + "submitter": "submitter", + "recipient": "recipient", + "sender": "sender", + "senderIp": "1.4.35.34", + "subject": "subject", + "reportType": "report type" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetUrlEntityById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetUrlEntityById.json new file mode 100644 index 000000000000..2b66279e8c81 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/GetUrlEntityById.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Url", + "properties": { + "friendlyName": "https://bing.com", + "url": "https://bing.com" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/expand/PostExpandEntity.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/expand/PostExpandEntity.json new file mode 100644 index 000000000000..aa03186cddc2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/expand/PostExpandEntity.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "parameters": { + "expansionId": "a77992f3-25e9-4d01-99a4-5ff606cc410a", + "startTime": "2019-04-25T00:00:00.000Z", + "endTime": "2019-05-26T00:00:00.000Z" + } + }, + "responses": { + "200": { + "body": { + "value": { + "entities": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/entities", + "kind": "Ip", + "properties": { + "address": "13.89.108.248", + "friendlyName": "13.89.108.248" + } + } + ], + "edges": [ + { + "targetEntityId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/c1d60d86-5988-11eb-ae93-0242ac130002", + "additionalData": { + "EpochTimestamp": "1608289949", + "FirstSeen": "2021-09-01T11:12:29.597Z", + "Source": "Heartbeat" + } + } + ] + }, + "metaData": { + "aggregations": [ + { + "entityKind": "Account", + "count": 1 + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/insights/PostGetInsights.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/insights/PostGetInsights.json new file mode 100644 index 000000000000..d33e0c11e18c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/insights/PostGetInsights.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "parameters": { + "addDefaultExtendedTimeRange": false, + "startTime": "2021-09-01T00:00:00.000Z", + "endTime": "2021-10-01T00:00:00.000Z", + "insightQueryIds": [ + "cae8d0aa-aa45-4d53-8d88-17dd64ffd4e4" + ] + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "tableQueryResults": { + "columns": [ + { + "name": "Title", + "type": "string" + }, + { + "name": "NameCount", + "type": "long" + }, + { + "name": "SIDCount", + "type": "long" + }, + { + "name": "InternalOrder", + "type": "long" + }, + { + "name": "Index", + "type": "long" + } + ], + "rows": [ + [ + "MyTitle", + "15", + "SID", + "1", + "1" + ] + ] + }, + "chartQueryResults": [ + { + "columns": [ + { + "name": "TimeGenerated", + "type": "datetime" + }, + { + "name": "Count", + "type": "long" + }, + { + "name": "Legend", + "type": "string" + } + ], + "rows": [ + [ + "2021-09-01T00:00:00.000Z", + "55", + "SomeLegend" + ] + ] + } + ], + "queryTimeInterval": { + "startTime": "2021-09-01T23:35:20Z", + "endTime": "2021-09-01T23:35:20Z" + }, + "queryId": "e29ee1ef-7445-455e-85f1-269f2d536d61" + } + ], + "metaData": { + "totalCount": 7, + "errors": [ + { + "kind": "Insight", + "queryId": "4a70a63d-25c4-6312-b73e-4f302a90c06a", + "errorMessage": "Internal server error" + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetAllEntityRelations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetAllEntityRelations.json new file mode 100644 index 000000000000..aad3f86f9557 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetAllEntityRelations.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "afbd324f-6c48-459c-8710-8d1e1cd03812" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/entities/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetEntityRelationByName.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetEntityRelationByName.json new file mode 100644 index 000000000000..29a323d7193c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/relations/GetEntityRelationByName.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/entities/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/incidents" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/timeline/PostTimelineEntity.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/timeline/PostTimelineEntity.json new file mode 100644 index 000000000000..a090f8955f8f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entities/timeline/PostTimelineEntity.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityId": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "parameters": { + "numberOfBucket": 4, + "startTime": "2021-09-01T00:00:00.000Z", + "endTime": "2021-10-01T00:00:00.000Z" + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "kind": "SecurityAlert", + "description": "The alert description", + "azureResourceId": "4467341f-fb73-4f99-a9b3-29473532cf5a_bf7c3a2f-b743-6410-3ff0-ec64b5995d50", + "productName": "Azure Sentinel", + "displayName": "Alert display name", + "severity": "Medium", + "endTimeUtc": "2021-09-01T23:31:28.02Z", + "startTimeUtc": "2021-09-01T23:32:28.01Z", + "timeGenerated": "2021-09-01T23:37:25.8136594Z", + "alertType": "4467341f-fb73-4f99-a9b3-29473532cf5a_c93bf33e-055e-4972-9e7d-f84fe3fb61ae", + "Intent": "Discovery" + }, + { + "kind": "Activity", + "queryId": "e0459780-ac9d-4b72-8bd4-fecf6b46a0a1", + "bucketStartTimeUTC": "2021-09-01T21:31:28.02Z", + "bucketEndTimeUTC": "2021-09-01T23:31:28.02Z", + "firstActivityTimeUTC": "2021-09-01T21:35:28.02Z", + "lastActivityTimeUTC": "2021-09-01T21:35:28.02Z", + "content": "he user has deleted the account 3 time(s)", + "title": "The user has deleted an account" + }, + { + "kind": "Anomaly", + "azureResourceId": "4467341f-fb73-4f99-a9b3-29473532cf5a_d56430ef-f421-2c9c-0b7d-d082285843c6", + "description": "Anomalous private to public port scanning activity with high destination port count along with low port ratio. The ratios are normalized by multiplying them by 10,000 to get them to a more usable value between 0.0 and 1.0.", + "productName": "Azure Sentinel", + "displayName": "(Preview) Anomalous scanning activity", + "endTimeUtc": "2021-09-01T23:31:28.02Z", + "startTimeUtc": "2021-09-01T23:32:28.01Z", + "timeGenerated": "2021-09-01T23:37:25.8136594Z", + "vendor": "Microsoft", + "intent": "Discovery", + "techniques": [ + "T1046" + ], + "reasons": [ + "High destination port count", + "Low port ratio" + ] + } + ], + "metaData": { + "totalCount": 6, + "aggregations": [ + { + "count": 4, + "kind": "Activity" + }, + { + "count": 2, + "kind": "SecurityAlert" + }, + { + "count": 1, + "kind": "Anomaly" + } + ], + "errors": [ + { + "kind": "Activity", + "queryId": "11067f9f-d6a7-4488-887f-0ba564268879", + "errorMessage": "syntax error" + }, + { + "kind": "SecurityAlert", + "errorMessage": "internal server error" + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/CreateEntityQueryActivity.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/CreateEntityQueryActivity.json new file mode 100644 index 000000000000..d51a91b99d62 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/CreateEntityQueryActivity.json @@ -0,0 +1,133 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityQueryId": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "entityQuery": { + "kind": "Activity", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "enabled": true, + "templateName": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "name": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "type": "Microsoft.SecurityInsights/entityQueries", + "kind": "Activity", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "enabled": true, + "templateName": null, + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "name": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "type": "Microsoft.SecurityInsights/entityQueries", + "kind": "Activity", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "enabled": true, + "templateName": null, + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/DeleteEntityQuery.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/DeleteEntityQuery.json new file mode 100644 index 000000000000..4f183b9c5129 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/DeleteEntityQuery.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityQueryId": "07da3cc8-c8ad-4710-a44e-334cdcb7882b" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetActivityEntityQueryById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetActivityEntityQueryById.json new file mode 100644 index 000000000000..b5dbbf4fd361 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetActivityEntityQueryById.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityQueryId": "07da3cc8-c8ad-4710-a44e-334cdcb7882b" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "name": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "type": "Microsoft.SecurityInsights/entityQueries", + "etag": null, + "kind": "Activity", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "enabled": true, + "templateName": null, + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetEntityQueries.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetEntityQueries.json new file mode 100644 index 000000000000..5365aff2bfd8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetEntityQueries.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "kind": "Expansion", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/37ca3555-c135-4a73-a65e-9c1d00323f5d", + "name": "37ca3555-c135-4a73-a65e-9c1d00323f5d", + "type": "Microsoft.SecurityInsights/entityQueries", + "etag": null, + "kind": "Expansion", + "properties": { + "queryTemplate": "let AccountActivity_byIP = (v_IP_Address:string){\r\n AzureActivity\r\n | where Caller != '' and CallerIpAddress == v_IP_Address\r\n | summarize Account_Aux_StartTime = min(TimeGenerated), Account_Aux_EndTime = max(TimeGenerated), Count = count() by Caller, TenantId\r\n | top 10 by Count asc nulls last \r\n | extend UPN = iff(Caller contains '@', Caller, ''), Account_AadUserId = iff(Caller !contains '@', Caller,'')\r\n | extend Account_Name = split(UPN,'@')[0] , Account_UPNSuffix = split(UPN,'@')[1]\r\n | project Account_Name, Account_UPNSuffix, Account_AadUserId, Account_AadTenantId=TenantId, Account_Aux_StartTime , Account_Aux_EndTime};\r\n AccountActivity_byIP('
')", + "inputFields": [ + "address" + ], + "outputEntityTypes": [ + "Account" + ], + "dataSources": [ + "AzureActivity" + ], + "inputEntityType": "IP", + "displayName": "Least active accounts on Azure from this IP" + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/97a1d515-abf2-4231-9a35-985f9de0bb91", + "name": "97a1d515-abf2-4231-9a35-985f9de0bb91", + "type": "Microsoft.SecurityInsights/entityQueries", + "etag": null, + "kind": "Expansion", + "properties": { + "queryTemplate": "let AccountActivity_byIP = (v_IP_Address:string){\r\n AzureActivity\r\n | where Caller != '' and CallerIpAddress == v_IP_Address\r\n | summarize Account_Aux_StartTime = min(TimeGenerated), Account_Aux_EndTime = max(TimeGenerated), Count = count() by Caller, TenantId\r\n | top 10 by Count desc nulls last \r\n | extend UPN = iff(Caller contains '@', Caller, ''), Account_AadUserId = iff(Caller !contains '@', Caller,'')\r\n | extend Account_Name = split(UPN,'@')[0] , Account_UPNSuffix = split(UPN,'@')[1]\r\n | project Account_Name, Account_UPNSuffix, Account_AadUserId, Account_AadTenantId=TenantId, Account_Aux_StartTime , Account_Aux_EndTime};\r\n AccountActivity_byIP('
')", + "inputFields": [ + "address" + ], + "outputEntityTypes": [ + "Account" + ], + "dataSources": [ + "AzureActivity" + ], + "inputEntityType": "IP", + "displayName": "Most active accounts on Azure from this IP" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetExpansionEntityQueryById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetExpansionEntityQueryById.json new file mode 100644 index 000000000000..39969bd0232e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueries/GetExpansionEntityQueryById.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityQueryId": "07da3cc8-c8ad-4710-a44e-334cdcb7882b" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueries/07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "name": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "type": "Microsoft.SecurityInsights/entityQueries", + "etag": null, + "kind": "Expansion", + "properties": { + "queryTemplate": "let GetParentProcessesOnHost = (v_Host_HostName:string){\r\n SecurityEvent \r\n | where EventID == 4688 \r\n | where isnotempty(ParentProcessName)\r\n | where NewProcessName !contains ':\\\\Windows\\\\System32\\\\conhost.exe' and ParentProcessName !contains ':\\\\Windows\\\\System32\\\\conhost.exe'\r\n and NewProcessName !contains ':\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v2.0.50727\\\\csc.exe' and ParentProcessName !contains ':\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v2.0.50727\\\\csc.exe'\r\n and NewProcessName !contains ':\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v2.0.50727\\\\cvtres.exe' and ParentProcessName !contains ':\\\\Windows\\\\Microsoft.NET\\\\Framework64\\\\v2.0.50727\\\\cvtres.exe'\r\n and NewProcessName!contains ':\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe' and ParentProcessName !contains ':\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe'\r\n and ParentProcessName !contains ':\\\\Windows\\\\CCM\\\\CcmExec.exe'\r\n | where(ParentProcessName !contains ':\\\\Windows\\\\System32\\\\svchost.exe' and (NewProcessName !contains ':\\\\Windows\\\\System32\\\\wbem\\\\WmiPrvSE.exe' or NewProcessName !contains ':\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSE.exe'))\r\n | where(ParentProcessName !contains ':\\\\Windows\\\\System32\\\\services.exe' and NewProcessName !contains ':\\\\Windows\\\\servicing\\\\TrustedInstaller.exe')\r\n | where toupper(Computer) contains v_Host_HostName or toupper(WorkstationName) contains v_Host_HostName\r\n | summarize min(TimeGenerated), max(TimeGenerated) by Account, Computer, ParentProcessName, NewProcessName, CommandLine, ProcessId\r\n | project min_TimeGenerated, max_TimeGenerated, Account, Computer, ParentProcessName, NewProcessName, CommandLine, ProcessId\r\n | project-rename Process_Host_UnstructuredName=Computer, Process_Account_UnstructuredName=Account, Process_CommandLine=CommandLine, Process_ProcessId=ProcessId, Process_ImageFile_FullPath=NewProcessName, Process_ParentProcess_ImageFile_FullPath=ParentProcessName\r\n | top 10 by min_TimeGenerated asc};\r\n GetParentProcessesOnHost(toupper(''))", + "inputFields": [ + "hostName" + ], + "outputEntityTypes": [ + "Process" + ], + "dataSources": [ + "SecurityEvent" + ], + "inputEntityType": "Host", + "displayName": "Parent processes running on host" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetActivityEntityQueryTemplateById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetActivityEntityQueryTemplateById.json new file mode 100644 index 000000000000..87d0169619d7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetActivityEntityQueryTemplateById.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityQueryTemplateId": "07da3cc8-c8ad-4710-a44e-334cdcb7882b" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueryTemplates/07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "name": "07da3cc8-c8ad-4710-a44e-334cdcb7882b", + "type": "Microsoft.SecurityInsights/entityQueryTemplate", + "kind": "Activity", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "dataTypes": [ + { + "dataType": "AuditLogs" + }, + { + "dataType": "SecurityEvent" + } + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetEntityQueryTemplates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetEntityQueryTemplates.json new file mode 100644 index 000000000000..f43a9e73c8b2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/entityQueryTemplates/GetEntityQueryTemplates.json @@ -0,0 +1,105 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "kind": "Activity", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueryTemplates/37ca3555-c135-4a73-a65e-9c1d00323f5d", + "name": "37ca3555-c135-4a73-a65e-9c1d00323f5d", + "type": "Microsoft.SecurityInsights/entityQueryTemplates", + "kind": "Activity", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "dataTypes": [ + { + "dataType": "AuditLogs" + }, + { + "dataType": "SecurityEvent" + } + ] + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entityQueryTemplates/97a1d515-abf2-4231-9a35-985f9de0bb91", + "name": "97a1d515-abf2-4231-9a35-985f9de0bb91", + "type": "Microsoft.SecurityInsights/entityQueryTemplates", + "kind": "Activity", + "properties": { + "title": "An account was deleted on this host", + "content": "On '{{Computer}}' the account '{{TargetAccount}}' was deleted by '{{AddedBy}}'", + "description": "Account deleted on host", + "queryDefinitions": { + "query": "let GetAccountActions = (v_Host_Name:string, v_Host_NTDomain:string, v_Host_DnsDomain:string, v_Host_AzureID:string, v_Host_OMSAgentID:string){\nSecurityEvent\n| where EventID in (4725, 4726, 4767, 4720, 4722, 4723, 4724)\n// parsing for Host to handle variety of conventions coming from data\n| extend Host_HostName = case(\nComputer has '@', tostring(split(Computer, '@')[0]),\nComputer has '\\\\', tostring(split(Computer, '\\\\')[1]),\nComputer has '.', tostring(split(Computer, '.')[0]),\nComputer\n)\n| extend Host_NTDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', tostring(split(Computer, '.')[-2]), \nComputer\n)\n| extend Host_DnsDomain = case(\nComputer has '\\\\', tostring(split(Computer, '\\\\')[0]), \nComputer has '.', strcat_array(array_slice(split(Computer,'.'),-2,-1),'.'), \nComputer\n)\n| where (Host_HostName =~ v_Host_Name and Host_NTDomain =~ v_Host_NTDomain) \nor (Host_HostName =~ v_Host_Name and Host_DnsDomain =~ v_Host_DnsDomain) \nor v_Host_AzureID =~ _ResourceId \nor v_Host_OMSAgentID == SourceComputerId\n| project TimeGenerated, EventID, Activity, Computer, TargetAccount, TargetUserName, TargetDomainName, TargetSid, SubjectUserName, SubjectUserSid, _ResourceId, SourceComputerId\n| extend AddedBy = SubjectUserName\n// Future support for Activities\n| extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = TargetAccount\n};\nGetAccountActions('{{Host_HostName}}', '{{Host_NTDomain}}', '{{Host_DnsDomain}}', '{{Host_AzureID}}', '{{Host_OMSAgentID}}')\n \n| where EventID == 4726 " + }, + "inputEntityType": "Host", + "requiredInputFieldsSets": [ + [ + "Host_HostName", + "Host_NTDomain" + ], + [ + "Host_HostName", + "Host_DnsDomain" + ], + [ + "Host_AzureID" + ], + [ + "Host_OMSAgentID" + ] + ], + "entitiesFilter": { + "Host_OsFamily": [ + "Windows" + ] + }, + "dataTypes": [ + { + "dataType": "AuditLogs" + }, + { + "dataType": "SecurityEvent" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/CreateFileImport.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/CreateFileImport.json new file mode 100644 index 000000000000..8886824c84a0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/CreateFileImport.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "fileImportId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "fileImport": { + "properties": { + "source": "mySource", + "importFile": { + "fileName": "myFile.json", + "fileSize": 4653, + "fileFormat": "JSON" + }, + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/FileImports", + "properties": { + "importFile": { + "fileName": "myFile.json", + "fileSize": 4653, + "fileFormat": "JSON", + "fileContentUri": "https://sentinelimportswus2.blob.core.windows.net/78c2e51a-3cd3-4ca0-a2d4-e7effb9a05fe/43967a5e-47a7-474e-afb8-2081e9b99ca1/fileName.json?skoid=&sktid=&skt=2022-03-25T21%3A12%3A51Z&ske=2022-03-25T22%3A12%3A51Z&sks=b&skv=2020-10-02&sv=2020-08-04&st=2022-03-25T21%3A12%3A51Z&se=2022-03-25T22%3A12%3A51Z&sr=b&sp=c&sig=", + "deleteStatus": "NotDeleted" + }, + "state": "WaitingForUpload", + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords", + "totalRecordCount": null, + "validRecordCount": null, + "ingestedRecordCount": null, + "createdTimeUTC": "2022-04-04T20:05:59.847136Z", + "filesValidUntilTimeUTC": "2022-04-05T20:05:59.8471361Z", + "importValidUntilTimeUTC": "2022-05-04T20:05:59.8471366Z", + "source": "mySource" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/FileImports", + "properties": { + "importFile": { + "fileName": "myFile.json", + "fileSize": 4653, + "fileFormat": "JSON", + "fileContentUri": "https://sentinelimportswus2.blob.core.windows.net/78c2e51a-3cd3-4ca0-a2d4-e7effb9a05fe/43967a5e-47a7-474e-afb8-2081e9b99ca1/fileName.json?skoid=&sktid=&skt=2022-03-25T21%3A12%3A51Z&ske=2022-03-25T22%3A12%3A51Z&sks=b&skv=2020-10-02&sv=2020-08-04&st=2022-03-25T21%3A12%3A51Z&se=2022-03-25T22%3A12%3A51Z&sr=b&sp=c&sig=", + "deleteStatus": "NotDeleted" + }, + "state": "WaitingForUpload", + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords", + "totalRecordCount": null, + "validRecordCount": null, + "ingestedRecordCount": null, + "createdTimeUTC": "2022-04-04T20:05:59.847136Z", + "filesValidUntilTimeUTC": "2022-04-05T20:05:59.8471361Z", + "importValidUntilTimeUTC": "2022-05-04T20:05:59.8471366Z", + "source": "mySource" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/DeleteFileImport.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/DeleteFileImport.json new file mode 100644 index 000000000000..80a907b0a8dc --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/DeleteFileImport.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "fileImportId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/FileImports", + "properties": { + "importFile": { + "fileName": "myFile.json", + "fileSize": 5146, + "fileFormat": "JSON", + "fileContentUri": null, + "deleteStatus": "NotDeleted" + }, + "state": "Ingested", + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords", + "totalRecordCount": 5, + "validRecordCount": 5, + "ingestedRecordCount": 5, + "createdTimeUTC": "2022-03-25T21:02:38.8350631Z", + "filesValidUntilTimeUTC": "2022-03-26T21:02:38.8350632Z", + "importValidUntilTimeUTC": "2022-04-24T21:02:38.8350636Z", + "source": "mySource" + } + } + }, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImportById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImportById.json new file mode 100644 index 000000000000..a7eb5344622f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImportById.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "fileImportId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/FileImports", + "properties": { + "importFile": { + "fileName": "myFile.json", + "fileSize": 5146, + "fileFormat": "JSON", + "fileContentUri": "https://sentinelimportswus2.blob.core.windows.net/78c2e51a-3cd3-4ca0-a2d4-e7effb9a05fe/43967a5e-47a7-474e-afb8-2081e9b99ca1/myFile.json?skoid=&sktid=&skt=2022-03-25T21%3A12%3A51Z&ske=2022-03-25T22%3A12%3A51Z&sks=b&skv=2020-10-02&sv=2020-08-04&st=2022-03-25T21%3A12%3A51Z&se=2022-03-25T22%3A12%3A51Z&sr=b&sp=c&sig=", + "deleteStatus": "NotDeleted" + }, + "state": "Ingested", + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords", + "totalRecordCount": 5, + "validRecordCount": 5, + "ingestedRecordCount": 5, + "createdTimeUTC": "2022-03-25T21:02:38.8350631Z", + "filesValidUntilTimeUTC": "2022-03-26T21:02:38.8350632Z", + "importValidUntilTimeUTC": "2022-04-24T21:02:38.8350636Z", + "source": "mySource" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImports.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImports.json new file mode 100644 index 000000000000..585adade78bd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/fileImports/GetFileImports.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "$orderby": "properties/createdTimeUtc desc", + "$top": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/FileImports/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "type": "Microsoft.SecurityInsights/FileImports", + "properties": { + "importFile": { + "fileName": "fileName.json", + "fileSize": 5146, + "fileFormat": "JSON", + "fileContentUri": null, + "deleteStatus": "NotDeleted" + }, + "state": "Ingested", + "contentType": "StixIndicator", + "ingestionMode": "IngestAnyValidRecords", + "totalRecordCount": 5, + "validRecordCount": 5, + "ingestedRecordCount": 5, + "createdTimeUTC": "2022-03-25T21:02:38.8350631Z", + "filesValidUntilTimeUTC": "2022-03-26T21:02:38.8350632Z", + "importValidUntilTimeUTC": "2022-04-24T21:02:38.8350636Z", + "source": "mySource" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHunt.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHunt.json new file mode 100644 index 000000000000..24f15b1623b7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHunt.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "hunt": { + "properties": { + "displayName": "Log4J new hunt", + "description": "Log4J Hunt Description", + "status": "New", + "hypothesisStatus": "Unknown", + "attackTactics": [ + "Reconnaissance" + ], + "attackTechniques": [ + "T1595" + ], + "labels": [ + "Label1", + "Label2" + ], + "owner": { + "objectId": "873b5263-5d34-4149-b356-ad341b01e123" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f", + "name": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "etag": "\"de00c408-0000-0c00-0000-62741e350000\"", + "type": "Microsoft.SecurityInsights/hunts", + "properties": { + "displayName": "Log4J new hunt", + "description": "Log4J Hunt Description", + "status": "New", + "hypothesisStatus": "Unknown", + "attackTactics": [ + "Reconnaissance" + ], + "attackTechniques": [ + "T1595" + ], + "huntStartTimeUtc": "2022-03-11T09:47:15.438Z", + "huntEndTimeUtc": "2022-03-12T09:47:15.438Z", + "labels": [ + "Label1", + "Label2" + ], + "owner": { + "objectId": "873b5263-5d34-4149-b356-ad341b01e123", + "email": "testemail@microsoft.com", + "assignedTo": null, + "userPrincipalName": "John Doe", + "ownerType": "User" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f", + "name": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "etag": "\"de00c408-0000-0c00-0000-62741e350000\"", + "type": "Microsoft.SecurityInsights/hunts", + "properties": { + "displayName": "Log4J new hunt", + "description": "Log4J Hunt Description", + "status": "New", + "hypothesisStatus": "Unknown", + "attackTactics": [ + "Reconnaissance" + ], + "attackTechniques": [ + "T1595" + ], + "huntSequenceNumber": 0, + "huntStartTimeUtc": "2022-03-11T09:47:15.438Z", + "huntEndTimeUtc": "2022-03-12T09:47:15.438Z", + "labels": [ + "Label1", + "Label2" + ], + "owner": { + "objectId": "873b5263-5d34-4149-b356-ad341b01e123", + "email": "testemail@microsoft.com", + "assignedTo": null, + "userPrincipalName": "John Doe", + "ownerType": "User" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntComment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntComment.json new file mode 100644 index 000000000000..19bc47b12c50 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntComment.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntCommentId": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "huntComment": { + "properties": { + "message": "This is a test comment." + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/comments/2216d0e1-91e3-4902-89fd-d2df8c123456", + "name": "2216d0e1-91e3-4902-89fd-d2df8c123456", + "etag": "\"3102f74d-0000-0c00-0000-629e6e050000\"", + "type": "Microsoft.SecurityInsights/hunts/comments", + "systemData": { + "createdAt": "2021-08-15T16:42:38.8709453Z", + "createdBy": "testuser@microsoft.com", + "createdByType": "User", + "lastModifiedAt": "2021-08-19T16:42:38.8709453Z", + "lastModifiedBy": "testuser@microsoft.com", + "lastModifiedByType": "User" + }, + "properties": { + "message": "This is a test comment." + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/comments/2216d0e1-91e3-4902-89fd-d2df8c123456", + "name": "2216d0e1-91e3-4902-89fd-d2df8c123456", + "etag": "\"3102f74d-0000-0c00-0000-629e6e050000\"", + "type": "Microsoft.SecurityInsights/hunts/comments", + "systemData": { + "createdAt": "2021-08-15T16:42:38.8709453Z", + "createdBy": "testuser@microsoft.com", + "createdByType": "User", + "lastModifiedAt": "2021-08-19T16:42:38.8709453Z", + "lastModifiedBy": "testuser@microsoft.com", + "lastModifiedByType": "User" + }, + "properties": { + "message": "This is a test comment." + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntRelation.json new file mode 100644 index 000000000000..8a9080cf7633 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/CreateHuntRelation.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntRelationId": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "huntRelation": { + "properties": { + "relatedResourceId": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/Bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "labels": [ + "Test Label" + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/relations/2216d0e1-91e3-4902-89fd-d2df8c535096", + "name": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "etag": "\"26012da2-0000-0c00-0000-627ad2760000\"", + "type": "Microsoft.SecurityInsights/hunts/relations", + "properties": { + "relatedResourceId": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/Bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/Bookmarks", + "labels": [ + "Test Label" + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/relations/2216d0e1-91e3-4902-89fd-d2df8c535096", + "name": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "etag": "\"26012da2-0000-0c00-0000-627ad2760000\"", + "type": "Microsoft.SecurityInsights/hunts/relations", + "properties": { + "relatedResourceId": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/Bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/Bookmarks", + "labels": [ + "Test Label" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHunt.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHunt.json new file mode 100644 index 000000000000..ae82f418d425 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHunt.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntComment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntComment.json new file mode 100644 index 000000000000..4e36f0a6b4f8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntComment.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntCommentId": "2216d0e1-91e3-4902-89fd-d2df8c123456" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntRelation.json new file mode 100644 index 000000000000..58c6828c190e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/DeleteHuntRelation.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntRelationId": "2216d0e1-91e3-4902-89fd-d2df8c535096" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntById.json new file mode 100644 index 000000000000..9b935b823ea0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntById.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f", + "name": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "etag": "\"de00c408-0000-0c00-0000-62741e350000\"", + "type": "Microsoft.SecurityInsights/hunts", + "properties": { + "displayName": "Log4J new hunt ", + "description": "Log4J Hunt Description", + "status": "New", + "hypothesisStatus": "Unknown", + "attackTactics": [ + "Reconnaissance" + ], + "attackTechniques": [ + "T1595" + ], + "labels": [ + "Label1", + "Label2" + ], + "owner": { + "objectId": "873b5263-5d34-4149-b356-ad341b01e123", + "email": "testemail@microsoft.com", + "assignedTo": null, + "userPrincipalName": "John Doe", + "ownerType": "User" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntCommentById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntCommentById.json new file mode 100644 index 000000000000..fea49ec674ff --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntCommentById.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntCommentId": "2216d0e1-91e3-4902-89fd-d2df8c535096" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/comments/2216d0e1-91e3-4902-89fd-d2df8c123456", + "name": "2216d0e1-91e3-4902-89fd-d2df8c123456", + "etag": "\"3102f74d-0000-0c00-0000-629e6e050000\"", + "type": "Microsoft.SecurityInsights/hunts/comments", + "systemData": { + "createdAt": "2021-08-15T16:42:38.8709453Z", + "createdBy": "testuser@microsoft.com", + "createdByType": "User", + "lastModifiedAt": "2021-08-19T16:42:38.8709453Z", + "lastModifiedBy": "testuser@microsoft.com", + "lastModifiedByType": "User" + }, + "properties": { + "message": "This is a comment." + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntComments.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntComments.json new file mode 100644 index 000000000000..3aa28d5e92fd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntComments.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/comments/2216d0e1-91e3-4902-89fd-d2df8c123456", + "name": "2216d0e1-91e3-4902-89fd-d2df8c123456", + "etag": "\"3102f74d-0000-0c00-0000-629e6e050000\"", + "type": "Microsoft.SecurityInsights/hunts/comments", + "properties": { + "message": "This is a test comment." + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelationById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelationById.json new file mode 100644 index 000000000000..1bca169f7261 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelationById.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f", + "huntRelationId": "2216d0e1-91e3-4902-89fd-d2df8c535096" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/relations/2216d0e1-91e3-4902-89fd-d2df8c535096", + "name": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "etag": "\"26012da2-0000-0c00-0000-627ad2760000\"", + "type": "Microsoft.SecurityInsights/hunts/relations", + "properties": { + "relatedResourceId": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/Bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/Bookmarks", + "labels": [ + "label1" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelations.json new file mode 100644 index 000000000000..2a7363236ea8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHuntRelations.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "huntId": "163e7b2a-a2ec-4041-aaba-d878a38f265f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/hunts/163e7b2a-a2ec-4041-aaba-d878a38f265f/relations/2216d0e1-91e3-4902-89fd-d2df8c535096", + "name": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "etag": "\"26012da2-0000-0c00-0000-627ad2760000\"", + "type": "Microsoft.SecurityInsights/hunts/relations", + "properties": { + "relatedResourceId": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirint/providers/Microsoft.SecurityInsights/Bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/Bookmarks", + "labels": [ + "label1" + ] + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHunts.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHunts.json new file mode 100644 index 000000000000..445dd80066b3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/hunts/GetHunts.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/hunts/b372ee75-2cad-4b71-8917-d5d5df9315b5", + "name": "b372ee75-2cad-4b71-8917-d5d5df9315b5", + "etag": "\"de00c408-0000-0c00-0000-62741e350000\"", + "type": "Microsoft.SecurityInsights/hunts", + "properties": { + "displayName": "Log4J new hunt", + "description": "Log4J Hunt Description", + "status": "New", + "hypothesisStatus": "Unknown", + "attackTactics": [ + "Reconnaissance" + ], + "attackTechniques": [ + "T1595" + ], + "labels": [ + "Label1", + "Label2" + ], + "owner": { + "objectId": "873b5263-5d34-4149-b356-ad341b01e123", + "email": "testemail@microsoft.com", + "assignedTo": null, + "userPrincipalName": "John Doe", + "ownerType": "User" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentAlerts/Incidents_ListAlerts.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentAlerts/Incidents_ListAlerts.json new file mode 100644 index 000000000000..0e22590b087f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentAlerts/Incidents_ListAlerts.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "69a30280-6a4c-4aa7-9af0-5d63f335d600" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Entities/baa8a239-6fde-4ab7-a093-d09f7b75c58c", + "name": "baa8a239-6fde-4ab7-a093-d09f7b75c58c", + "type": "Microsoft.SecurityInsights/Entities", + "kind": "SecurityAlert", + "properties": { + "systemAlertId": "baa8a239-6fde-4ab7-a093-d09f7b75c58c", + "tactics": [], + "alertDisplayName": "myAlert", + "confidenceLevel": "Unknown", + "severity": "Low", + "vendorName": "Microsoft", + "productName": "Azure Security Center", + "alertType": "myAlert", + "processingEndTime": "2020-07-20T18:21:53.615Z", + "status": "New", + "endTimeUtc": "2020-07-20T18:21:53.615Z", + "startTimeUtc": "2020-07-20T18:21:53.615Z", + "timeGenerated": "2020-07-20T18:21:53.615Z", + "resourceIdentifiers": [ + { + "type": "LogAnalytics", + "workspaceId": "c8c99641-985d-4e4e-8e91-fb3466cd0e5b", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroup": "myRG" + } + ], + "additionalData": { + "alertMessageEnqueueTime": "2020-07-20T18:21:57.304Z" + }, + "friendlyName": "myAlert" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentBookmarks/Incidents_ListBookmarks.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentBookmarks/Incidents_ListBookmarks.json new file mode 100644 index 000000000000..7bd6aa0fb7ee --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentBookmarks/Incidents_ListBookmarks.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "69a30280-6a4c-4aa7-9af0-5d63f335d600" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/afbd324f-6c48-459c-8710-8d1e1cd03812", + "name": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "type": "Microsoft.SecurityInsights/Entities", + "kind": "Bookmark", + "properties": { + "displayName": "SecurityEvent - 868f40f4698d", + "created": "2020-06-17T15:34:01.426+00:00", + "updated": "2020-06-17T15:34:01.426+00:00", + "createdBy": { + "objectId": "b03ca914-5eb6-45e5-9417-fe0797c372fd", + "email": "user@contoso.com", + "name": "user" + }, + "updatedBy": { + "objectId": "b03ca914-5eb6-45e5-9417-fe0797c372fd", + "email": "user@contoso.com", + "name": "user" + }, + "eventTime": "2020-06-17T15:34:01.426+00:00", + "labels": [], + "query": "SecurityEvent\r\n| take 1\n", + "queryResult": "{\"TimeGenerated\":\"2020-05-24T01:24:25.67Z\",\"Account\":\"\\\\ADMINISTRATOR\",\"AccountType\":\"User\",\"Computer\":\"SecurityEvents\",\"EventSourceName\":\"Microsoft-Windows-Security-Auditing\",\"Channel\":\"Security\",\"Task\":12544,\"Level\":\"16\",\"EventID\":4625,\"Activity\":\"4625 - An account failed to log on.\",\"AuthenticationPackageName\":\"NTLM\",\"FailureReason\":\"%%2313\",\"IpAddress\":\"176.113.115.73\",\"IpPort\":\"0\",\"LmPackageName\":\"-\",\"LogonProcessName\":\"NtLmSsp \",\"LogonType\":3,\"LogonTypeName\":\"3 - Network\",\"Process\":\"-\",\"ProcessId\":\"0x0\",\"__entityMapping\":{\"\\\\ADMINISTRATOR\":\"Account\",\"SecurityEvents\":\"Host\"}}", + "additionalData": { + "eTag": "\"3b00acab-0000-0d00-0000-5f15e4ed0000\"", + "entityId": "afbd324f-6c48-459c-8710-8d1e1cd03812" + }, + "friendlyName": "SecurityEvent - 868f40f4698d" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_CreateOrUpdate.json new file mode 100644 index 000000000000..370cc644604f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_CreateOrUpdate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentCommentId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "incidentComment": { + "properties": { + "message": "Some message" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/comments", + "properties": { + "message": "Some message", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T13:15:30Z", + "author": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/comments", + "properties": { + "message": "Some message", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T13:15:30Z", + "author": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Delete.json new file mode 100644 index 000000000000..7840e983a49a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentCommentId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Get.json new file mode 100644 index 000000000000..aca611f53c59 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentCommentId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/comments", + "properties": { + "message": "Some message", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "author": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_List.json new file mode 100644 index 000000000000..42b2f0a13252 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentComments/IncidentComments_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/comments/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/comments", + "properties": { + "message": "Some message", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "author": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentEntities/Incidents_ListEntities.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentEntities/Incidents_ListEntities.json new file mode 100644 index 000000000000..61d2bbc3c570 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentEntities/Incidents_ListEntities.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "69a30280-6a4c-4aa7-9af0-5d63f335d600" + }, + "responses": { + "200": { + "body": { + "entities": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Entities/e1d3d618-e11f-478b-98e3-bb381539a8e1", + "name": "e1d3d618-e11f-478b-98e3-bb381539a8e1", + "type": "Microsoft.SecurityInsights/Entities", + "kind": "Account", + "properties": { + "accountName": "administrator", + "ntDomain": "domain", + "friendlyName": "administrator" + } + } + ], + "metaData": [ + { + "entityKind": "Account", + "count": 1 + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_CreateOrUpdate.json new file mode 100644 index 000000000000..4b5decdba660 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_CreateOrUpdate.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentTaskId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "incidentTask": { + "properties": { + "title": "Task title", + "description": "Task description", + "status": "New" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/tasks/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/tasks", + "properties": { + "title": "Task title", + "description": "Task description", + "status": "New", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/tasks/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/tasks", + "properties": { + "title": "Task title", + "description": "Task description", + "status": "New", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Delete.json new file mode 100644 index 000000000000..623a6b9bb5dd --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentTaskId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Get.json new file mode 100644 index 000000000000..7fd6c8588581 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incidentTaskId": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/tasks/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/tasks", + "properties": { + "title": "Task title", + "description": "Task description", + "status": "New", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_List.json new file mode 100644 index 000000000000..7596441210f4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTasks/IncidentTasks_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5/tasks/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "type": "Microsoft.SecurityInsights/incidents/tasks", + "properties": { + "title": "Task title", + "description": "Task description", + "status": "New", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "lastModifiedTimeUtc": "2019-01-03T11:10:30Z", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + }, + "lastModifiedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "name": "john doe", + "userPrincipalName": "john@contoso.com" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTeam/Incidents_CreateTeam.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTeam/Incidents_CreateTeam.json new file mode 100644 index 000000000000..32a8f9ab7a36 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/IncidentTeam/Incidents_CreateTeam.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "69a30280-6a4c-4aa7-9af0-5d63f335d600", + "teamProperties": { + "teamName": "Team name", + "teamDescription": "Team description", + "groupIds": null, + "memberIds": null + } + }, + "responses": { + "200": { + "body": { + "teamId": "99978838-9bda-4ad4-8f93-4cf7ebc50ca5", + "primaryChannelUrl": "https://teams.microsoft.com/l/team/19:80bf3b25485b4067b7d2dc4eec9e1578%40thread.tacv2/conversations?groupId=99978838-9bda-4ad4-8f93-4cf7ebc50ca5&tenantId=5b5a146c-eba8-46af-96f8-e31b50d15a3f", + "teamCreationTimeUtc": "2021-03-15T17:08:21.995Z", + "name": "Team name", + "description": "Team description" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_CreateOrUpdate.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_CreateOrUpdate.json new file mode 100644 index 000000000000..2b5095a02739 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_CreateOrUpdate.json @@ -0,0 +1,136 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "incident": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "title": "My incident", + "description": "This is a demo incident", + "severity": "High", + "status": "Closed", + "classification": "FalsePositive", + "classificationReason": "InaccurateData", + "classificationComment": "Not a malicious activity", + "owner": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": null, + "assignedTo": null, + "userPrincipalName": null, + "ownerType": null + }, + "firstActivityTimeUtc": "2019-01-01T13:00:30Z", + "lastActivityTimeUtc": "2019-01-01T13:05:30Z" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0001\"", + "type": "Microsoft.SecurityInsights/incidents", + "properties": { + "title": "My incident", + "description": "This is a demo incident", + "severity": "High", + "status": "Closed", + "classification": "FalsePositive", + "classificationReason": "InaccurateData", + "classificationComment": "Not a malicious activity", + "owner": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "assignedTo": "john doe", + "userPrincipalName": "john@contoso.com", + "ownerType": "User" + }, + "labels": [], + "firstActivityTimeUtc": "2019-01-01T13:00:30Z", + "lastActivityTimeUtc": "2019-01-01T13:05:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "incidentNumber": 3177, + "additionalData": { + "alertsCount": 0, + "bookmarksCount": 0, + "commentsCount": 3, + "alertProductNames": [], + "tactics": [ + "InitialAccess", + "Persistence" + ], + "techniques": [ + "T1091", + "T1133", + "T1053" + ], + "providerIncidentUrl": "https://security.microsoft.com/incidents/3177?tid=5b5a146c-eba8-46af-96f8-e31b50d15a3f" + }, + "relatedAnalyticRuleIds": [ + "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/fab3d2d4-747f-46a7-8ef0-9c0be8112bf7" + ], + "incidentUrl": "https://portal.azure.com/#asset/Microsoft_Azure_Security_Insights/Incident/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "providerName": "Azure Sentinel", + "providerIncidentId": "3177" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0001\"", + "type": "Microsoft.SecurityInsights/incidents", + "properties": { + "title": "My incident", + "description": "This is a demo incident", + "severity": "High", + "status": "Closed", + "classification": "FalsePositive", + "classificationReason": "InaccurateData", + "classificationComment": "Not a malicious activity", + "owner": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "assignedTo": "john doe", + "userPrincipalName": "john@contoso.com", + "ownerType": "User" + }, + "labels": [], + "firstActivityTimeUtc": "2019-01-01T13:00:30Z", + "lastActivityTimeUtc": "2019-01-01T13:05:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "incidentNumber": 3177, + "additionalData": { + "alertsCount": 0, + "bookmarksCount": 0, + "commentsCount": 3, + "alertProductNames": [], + "tactics": [ + "InitialAccess", + "Persistence" + ], + "techniques": [ + "T1091", + "T1133", + "T1053" + ], + "providerIncidentUrl": "https://security.microsoft.com/incidents/3177?tid=5b5a146c-eba8-46af-96f8-e31b50d15a3f" + }, + "relatedAnalyticRuleIds": [ + "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/fab3d2d4-747f-46a7-8ef0-9c0be8112bf7" + ], + "incidentUrl": "https://portal.azure.com/#asset/Microsoft_Azure_Security_Insights/Incident/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "providerName": "Azure Sentinel", + "providerIncidentId": "3177" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Delete.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Delete.json new file mode 100644 index 000000000000..a46a232d537d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Delete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Get.json new file mode 100644 index 000000000000..a917c7e3c0b0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_Get.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "73e01a99-5cd7-4139-a149-9f2736ff2ab5" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/incidents", + "properties": { + "title": "My incident", + "description": "This is a demo incident", + "severity": "High", + "status": "Closed", + "classification": "FalsePositive", + "classificationReason": "InaccurateData", + "classificationComment": "Not a malicious activity", + "owner": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "assignedTo": "john doe", + "userPrincipalName": "john@contoso.com", + "ownerType": "User" + }, + "labels": [], + "firstActivityTimeUtc": "2019-01-01T13:00:30Z", + "lastActivityTimeUtc": "2019-01-01T13:05:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "incidentNumber": 3177, + "additionalData": { + "alertsCount": 0, + "bookmarksCount": 0, + "commentsCount": 3, + "alertProductNames": [], + "tactics": [ + "InitialAccess", + "Persistence" + ], + "techniques": [ + "T1091", + "T1133", + "T1053" + ], + "providerIncidentUrl": "https://security.microsoft.com/incidents/3177?tid=5b5a146c-eba8-46af-96f8-e31b50d15a3f" + }, + "relatedAnalyticRuleIds": [ + "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/fab3d2d4-747f-46a7-8ef0-9c0be8112bf7" + ], + "incidentUrl": "https://portal.azure.com/#asset/Microsoft_Azure_Security_Insights/Incident/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "providerName": "Azure Sentinel", + "providerIncidentId": "3177" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_List.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_List.json new file mode 100644 index 000000000000..4d71dac3fca7 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/Incidents_List.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "$orderby": "properties/createdTimeUtc desc", + "$top": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "name": "73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/incidents", + "properties": { + "title": "My incident", + "description": "This is a demo incident", + "severity": "High", + "status": "Closed", + "classification": "FalsePositive", + "classificationReason": "InaccurateData", + "classificationComment": "Not a malicious activity", + "owner": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john.doe@contoso.com", + "assignedTo": "john doe", + "userPrincipalName": "john@contoso.com", + "ownerType": "User" + }, + "labels": [], + "firstActivityTimeUtc": "2019-01-01T13:00:30Z", + "lastActivityTimeUtc": "2019-01-01T13:05:30Z", + "lastModifiedTimeUtc": "2019-01-01T13:15:30Z", + "createdTimeUtc": "2019-01-01T13:15:30Z", + "incidentNumber": 3177, + "additionalData": { + "alertsCount": 0, + "bookmarksCount": 0, + "commentsCount": 3, + "alertProductNames": [], + "tactics": [ + "InitialAccess", + "Persistence" + ], + "techniques": [ + "T1091", + "T1133", + "T1053" + ], + "providerIncidentUrl": "https://security.microsoft.com/incidents/3177?tid=5b5a146c-eba8-46af-96f8-e31b50d15a3f" + }, + "relatedAnalyticRuleIds": [ + "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/fab3d2d4-747f-46a7-8ef0-9c0be8112bf7" + ], + "incidentUrl": "https://portal.azure.com/#asset/Microsoft_Azure_Security_Insights/Incident/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5", + "providerName": "Azure Sentinel", + "providerIncidentId": "3177" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/CreateIncidentRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/CreateIncidentRelation.json new file mode 100644 index 000000000000..1529ac0fc9c4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/CreateIncidentRelation.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "relation": { + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/incidents/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/bookmarks" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/incidents/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/bookmarks" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/DeleteIncidentRelation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/DeleteIncidentRelation.json new file mode 100644 index 000000000000..ce88cb5f4f64 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/DeleteIncidentRelation.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetAllIncidentRelations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetAllIncidentRelations.json new file mode 100644 index 000000000000..2aa36ddf7c7a --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetAllIncidentRelations.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "afbd324f-6c48-459c-8710-8d1e1cd03812" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/incidents/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/bookmarks" + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/9673a17d-8bc7-4ca6-88ee-38a4f3efc032", + "name": "9673a17d-8bc7-4ca6-88ee-38a4f3efc032", + "type": "Microsoft.SecurityInsights/incidents/relations", + "etag": "6f714025-dd7c-46aa-b5d0-b9857488d060", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/entities/1dd267cd-8a1f-4f6f-b92c-da43ac8819af", + "relatedResourceName": "1dd267cd-8a1f-4f6f-b92c-da43ac8819af", + "relatedResourceType": "Microsoft.SecurityInsights/entities", + "relatedResourceKind": "SecurityAlert" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetIncidentRelationByName.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetIncidentRelationByName.json new file mode 100644 index 000000000000..1141ceb49480 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/incidents/relations/GetIncidentRelationByName.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentId": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "relationName": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/afbd324f-6c48-459c-8710-8d1e1cd03812/relations/4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "name": "4bb36b7b-26ff-4d1c-9cbe-0d8ab3da0014", + "type": "Microsoft.SecurityInsights/incidents/relations", + "etag": "190057d0-0000-0d00-0000-5c6f5adb0000", + "properties": { + "relatedResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/bookmarks/2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceName": "2216d0e1-91e3-4902-89fd-d2df8c535096", + "relatedResourceType": "Microsoft.SecurityInsights/bookmarks" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Entities_RunPlaybook.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Entities_RunPlaybook.json new file mode 100644 index 000000000000..b6f08f06d8d8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Entities_RunPlaybook.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "entityIdentifier": "72e01a22-5cd2-4139-a149-9f2736ff2ar2", + "manualTriggerRequestBody": { + "logicAppsResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/my-playbook-name", + "tenantId": "qwere6b2-9ac0-4464-9919-dccaee2e4ddd", + "incidentArmId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/incidents/73e01a99-5cd7-4139-a149-9f2736ff2ab5" + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Incidents_RunPlaybook.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Incidents_RunPlaybook.json new file mode 100644 index 000000000000..5dd17c7cddda --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/manualTrigger/Incidents_RunPlaybook.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "incidentIdentifier": "73e01a99-5cd7-4139-a149-9f2736ff2ar4", + "manualTriggerRequestBody": { + "logicAppsResourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.Logic/workflows/my-playbook-name", + "tenantId": "qwere6b2-9ac0-4464-9919-dccaee2e4ddd" + } + }, + "responses": { + "204": { + "body": {} + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/DeleteMetadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/DeleteMetadata.json new file mode 100644 index 000000000000..e617152ca00f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/DeleteMetadata.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "metadataName": "metadataName" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadata.json new file mode 100644 index 000000000000..2f05acc79aa1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadata.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName1", + "name": "metadataName1", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + } + } + }, + { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName2", + "name": "metadataName2", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "f5160682-0e10-4e23-8fcf-df3df49c5522", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName2", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + } + } + }, + { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.Insights/workbooks/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName3", + "name": "metadataName3", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "f593501d-ec01-4057-8146-a1de35c461ef", + "version": "1.0.0.0", + "kind": "Workbook", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.Insights/workbooks/workbookName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadataOData.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadataOData.json new file mode 100644 index 000000000000..dab726670351 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetAllMetadataOData.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ODataFilter": "properties/kind eq 'AnalyticsRule'", + "ODataOrderBy": "properties/parentId desc", + "ODataSkip": "2", + "ODataTop": "2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName1", + "name": "metadataName1", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName1", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + } + } + }, + { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName2", + "name": "metadataName2", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "f5160682-0e10-4e23-8fcf-df3df49c5522", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName2", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetMetadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetMetadata.json new file mode 100644 index 000000000000..ef36656ccb30 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/GetMetadata.json @@ -0,0 +1,104 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "2e1dc338-d04d-4443-b721-037eff4fdcac", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "metadataName": "metadataName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + }, + "author": { + "name": "User Name", + "email": "email@microsoft.com" + }, + "support": { + "name": "Microsoft", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/", + "tier": "Partner" + }, + "dependencies": { + "operator": "AND", + "criteria": [ + { + "operator": "OR", + "criteria": [ + { + "contentId": "045d06d0-ee72-4794-aba4-cf5646e4c756", + "kind": "DataConnector" + }, + { + "contentId": "dbfcb2cc-d782-40ef-8d94-fe7af58a6f2d", + "kind": "DataConnector" + }, + { + "contentId": "de4dca9b-eb37-47d6-a56f-b8b06b261593", + "kind": "DataConnector", + "version": "2.0" + } + ] + }, + { + "kind": "Playbook", + "contentId": "31ee11cc-9989-4de8-b176-5e0ef5c4dbab", + "version": "1.0" + }, + { + "kind": "Parser", + "contentId": "21ba424a-9438-4444-953a-7059539a7a1b" + } + ] + }, + "categories": { + "domains": [ + "Application", + "Security – Insider Threat" + ], + "verticals": [ + "Healthcare" + ] + }, + "providers": [ + "Amazon", + "Microsoft" + ], + "firstPublishDate": "2021-05-18", + "lastPublishDate": "2021-05-18", + "previewImages": [ + "firstImage.png", + "secondImage.jpeg" + ], + "previewImagesDark": [ + "firstImageDark.png", + "secondImageDark.jpeg" + ], + "contentSchemaVersion": "2.0", + "customVersion": "1.0", + "threatAnalysisTactics": [ + "reconnaissance", + "commandandcontrol" + ], + "threatAnalysisTechniques": [ + "T1548", + "T1548.001" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PatchMetadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PatchMetadata.json new file mode 100644 index 000000000000..1dcd19f999ce --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PatchMetadata.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "metadataName": "metadataName", + "metadataPatch": { + "properties": { + "author": { + "name": "User Name", + "email": "email@microsoft.com" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "author": { + "name": "User Name", + "email": "email@microsoft.com" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadata.json new file mode 100644 index 000000000000..f7c6f7f9209b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadata.json @@ -0,0 +1,286 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "metadataName": "metadataName", + "metadata": { + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + }, + "author": { + "name": "User Name", + "email": "email@microsoft.com" + }, + "support": { + "name": "Microsoft", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/", + "tier": "Partner" + }, + "dependencies": { + "operator": "AND", + "criteria": [ + { + "operator": "OR", + "criteria": [ + { + "contentId": "045d06d0-ee72-4794-aba4-cf5646e4c756", + "kind": "DataConnector", + "name": "Microsoft Defender for Endpoint" + }, + { + "contentId": "dbfcb2cc-d782-40ef-8d94-fe7af58a6f2d", + "kind": "DataConnector" + }, + { + "contentId": "de4dca9b-eb37-47d6-a56f-b8b06b261593", + "kind": "DataConnector", + "version": "2.0" + } + ] + }, + { + "kind": "Playbook", + "contentId": "31ee11cc-9989-4de8-b176-5e0ef5c4dbab", + "version": "1.0" + }, + { + "kind": "Parser", + "contentId": "21ba424a-9438-4444-953a-7059539a7a1b" + } + ] + }, + "categories": { + "domains": [ + "Application", + "Security – Insider Threat" + ], + "verticals": [ + "Healthcare" + ] + }, + "providers": [ + "Amazon", + "Microsoft" + ], + "firstPublishDate": "2021-05-18", + "lastPublishDate": "2021-05-18", + "previewImages": [ + "firstImage.png", + "secondImage.jpeg" + ], + "previewImagesDark": [ + "firstImageDark.png", + "secondImageDark.jpeg" + ], + "contentSchemaVersion": "2.0", + "customVersion": "1.0", + "threatAnalysisTactics": [ + "reconnaissance", + "commandandcontrol" + ], + "threatAnalysisTechniques": [ + "T1548", + "T1548.001" + ] + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + }, + "author": { + "name": "User Name", + "email": "email@microsoft.com" + }, + "support": { + "name": "Microsoft", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/", + "tier": "Partner" + }, + "dependencies": { + "operator": "AND", + "criteria": [ + { + "operator": "OR", + "criteria": [ + { + "contentId": "045d06d0-ee72-4794-aba4-cf5646e4c756", + "kind": "DataConnector" + }, + { + "contentId": "dbfcb2cc-d782-40ef-8d94-fe7af58a6f2d", + "kind": "DataConnector" + }, + { + "contentId": "de4dca9b-eb37-47d6-a56f-b8b06b261593", + "kind": "DataConnector", + "version": "2.0" + } + ] + }, + { + "kind": "Playbook", + "contentId": "31ee11cc-9989-4de8-b176-5e0ef5c4dbab", + "version": "1.0" + }, + { + "kind": "Parser", + "contentId": "21ba424a-9438-4444-953a-7059539a7a1b" + } + ] + }, + "categories": { + "domains": [ + "Application", + "Security – Insider Threat" + ], + "verticals": [ + "Healthcare" + ] + }, + "providers": [ + "Amazon", + "Microsoft" + ], + "firstPublishDate": "2021-05-18", + "lastPublishDate": "2021-05-18", + "previewImages": [ + "firstImage.png", + "secondImage.jpeg" + ], + "previewImagesDark": [ + "firstImageDark.png", + "secondImageDark.jpeg" + ], + "contentSchemaVersion": "2.0", + "customVersion": "1.0", + "threatAnalysisTactics": [ + "reconnaissance", + "commandandcontrol" + ], + "threatAnalysisTechniques": [ + "T1548", + "T1548.001" + ] + } + } + }, + "200": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "version": "1.0.0.0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName", + "source": { + "kind": "Solution", + "name": "Contoso Solution 1.0", + "sourceId": "b688a130-76f4-4a07-bf57-762222a3cadf" + }, + "author": { + "name": "User Name", + "email": "email@microsoft.com" + }, + "support": { + "name": "Microsoft", + "email": "support@microsoft.com", + "link": "https://support.microsoft.com/", + "tier": "Partner" + }, + "dependencies": { + "operator": "AND", + "criteria": [ + { + "operator": "OR", + "criteria": [ + { + "contentId": "045d06d0-ee72-4794-aba4-cf5646e4c756", + "kind": "DataConnector" + }, + { + "contentId": "dbfcb2cc-d782-40ef-8d94-fe7af58a6f2d", + "kind": "DataConnector" + }, + { + "contentId": "de4dca9b-eb37-47d6-a56f-b8b06b261593", + "kind": "DataConnector", + "version": "2.0" + } + ] + }, + { + "kind": "Playbook", + "contentId": "31ee11cc-9989-4de8-b176-5e0ef5c4dbab", + "version": "1.0" + }, + { + "kind": "Parser", + "contentId": "21ba424a-9438-4444-953a-7059539a7a1b" + } + ] + }, + "categories": { + "domains": [ + "Application", + "Security – Insider Threat" + ], + "verticals": [ + "Healthcare" + ] + }, + "providers": [ + "Amazon", + "Microsoft" + ], + "firstPublishDate": "2021-05-18", + "lastPublishDate": "2021-05-18", + "previewImages": [ + "firstImage.png", + "secondImage.jpeg" + ], + "previewImagesDark": [ + "firstImageDark.png", + "secondImageDark.jpeg" + ], + "contentSchemaVersion": "2.0", + "customVersion": "1.0", + "threatAnalysisTactics": [ + "reconnaissance", + "commandandcontrol" + ], + "threatAnalysisTechniques": [ + "T1548", + "T1548.001" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadataMinimal.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadataMinimal.json new file mode 100644 index 000000000000..ea6cb4df52f8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/metadata/PutMetadataMinimal.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "metadataName": "metadataName", + "metadata": { + "properties": { + "contentId": "c00ee137-7475-47c8-9cce-ec6f0f1bedd0", + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/metadata/metadataName", + "name": "metadataName", + "type": "Microsoft.SecurityInsights/metadata", + "properties": { + "kind": "AnalyticsRule", + "parentId": "/subscriptions/2e1dc338-d04d-4443-b721-037eff4fdcac/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/ruleName" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/DeleteOfficeConsents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/DeleteOfficeConsents.json new file mode 100644 index 000000000000..385638b936d8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/DeleteOfficeConsents.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "consentId": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsents.json new file mode 100644 index 000000000000..f75931ab3d46 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsents.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/officeConsents/04e5fd05-ff86-4b97-b8d2-1c20933cb46c", + "name": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c", + "type": "Microsoft.SecurityInsights/officeConsents", + "properties": { + "tenantId": "5460b3d2-1e7b-4757-ad54-c858c7e3f252", + "consentId": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsentsById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsentsById.json new file mode 100644 index 000000000000..6a982e4155d4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/officeConsents/GetOfficeConsentsById.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "consentId": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/officeConsents/04e5fd05-ff86-4b97-b8d2-1c20933cb46c", + "name": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c", + "type": "Microsoft.SecurityInsights/officeConsents", + "properties": { + "tenantId": "5460b3d2-1e7b-4757-ad54-c858c7e3f252", + "consentId": "04e5fd05-ff86-4b97-b8d2-1c20933cb46c" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/CreateSentinelOnboardingState.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/CreateSentinelOnboardingState.json new file mode 100644 index 000000000000..6e98dd674fff --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/CreateSentinelOnboardingState.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sentinelOnboardingStateName": "default", + "sentinelOnboardingStateParameter": { + "properties": { + "customerManagedKey": false + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/onboardingStates/default", + "name": "default", + "type": "Microsoft.SecurityInsights/onboardingStates", + "properties": { + "customerManagedKey": false + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/onboardingStates/default", + "name": "default", + "type": "Microsoft.SecurityInsights/onboardingStates", + "properties": { + "customerManagedKey": false + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/DeleteSentinelOnboardingState.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/DeleteSentinelOnboardingState.json new file mode 100644 index 000000000000..e92fa8a247e5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/DeleteSentinelOnboardingState.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sentinelOnboardingStateName": "default" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetAllSentinelOnboardingStates.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetAllSentinelOnboardingStates.json new file mode 100644 index 000000000000..031b9e116c48 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetAllSentinelOnboardingStates.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/onboardingStates/default", + "name": "default", + "type": "Microsoft.SecurityInsights/onboardingStates", + "properties": { + "customerManagedKey": false + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetSentinelOnboardingState.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetSentinelOnboardingState.json new file mode 100644 index 000000000000..edf2971f6e95 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/onboardingStates/GetSentinelOnboardingState.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sentinelOnboardingStateName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/onboardingStates/default", + "name": "default", + "type": "Microsoft.SecurityInsights/onboardingStates", + "properties": { + "customerManagedKey": false + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/operations/ListOperations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/operations/ListOperations.json new file mode 100644 index 000000000000..005c6bbe5d1e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/operations/ListOperations.json @@ -0,0 +1,563 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.SecurityInsights/operations/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Operations", + "operation": "Get Operations", + "description": "Gets operations" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/automationRules/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "AutomationRules", + "operation": "Get Automation Rules", + "description": "Gets an automation rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/automationRules/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "AutomationRules", + "operation": "Update Automation Rules", + "description": "Updates an automation rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/automationRules/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "AutomationRules", + "operation": "Delete Automation Rules", + "description": "Deletes an automation rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Bookmarks/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmarks", + "operation": "Get Bookmarks", + "description": "Gets bookmarks" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Bookmarks/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmarks", + "operation": "Update Bookmarks", + "description": "Updates bookmarks" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Bookmarks/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmarks", + "operation": "Delete Bookmarks", + "description": "Deletes bookmarks" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Bookmarks/expand/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmarks", + "operation": "Expand on entity", + "description": "Gets related entities of an entity by a specific expansion" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/bookmarks/relations/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmark Relations", + "operation": "Get Bookmark Relations", + "description": "Gets a bookmark relation" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/bookmarks/relations/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmark Relations", + "operation": "Update Bookmark Relations", + "description": "Updates a bookmark relation" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/bookmarks/relations/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Bookmark Relations", + "operation": "Delete Bookmark Relations", + "description": "Deletes a bookmark relation" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules", + "operation": "Get Alert Rules", + "description": "Gets the alert rules" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules", + "operation": "Update Alert Rules", + "description": "Updates alert rules" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules", + "operation": "Delete Alert Rules", + "description": "Deletes alert rules" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/actions/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules Actions", + "operation": "Get Alert Rule Response Actions", + "description": "Gets the response actions of an alert rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/actions/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules Actions", + "operation": "Update Alert Rule Response Actions", + "description": "Updates the response actions of an alert rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/alertRules/actions/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Alert Rules Actions", + "operation": "Delete Alert Rule Response Actions", + "description": "Deletes the response actions of an alert rule" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/dataConnectors/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "DataConnectors", + "operation": "Get Data Connectors", + "description": "Gets the data connectors" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/dataConnectors/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "DataConnectors", + "operation": "Update Data Connectors", + "description": "Updates a data connector" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/dataConnectors/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "DataConnectors", + "operation": "Delete a Data Connector", + "description": "Deletes a data connector" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/dataConnectorsCheckRequirements/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "DataConnectorsCheckRequirements", + "operation": "Check user authorization and license", + "description": "Check user authorization and license" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incidents", + "operation": "Get Incidents", + "description": "Gets an incident" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incidents", + "operation": "Update Incidents", + "description": "Updates an incident" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incidents", + "operation": "Delete Incidents", + "description": "Deletes an incident" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/comments/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Comments", + "operation": "Get Incident Comments", + "description": "Gets the incident comments" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/comments/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Comments", + "operation": "Create Incident Comments", + "description": "Creates a comment on the incident" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/comments/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Comments", + "operation": "Delete Incident Comment", + "description": "Deletes a comment on the incident" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/relations/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Relations", + "operation": "Get Incident Relations", + "description": "Gets a relation between the incident and related resources" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/relations/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Relations", + "operation": "Update Incident Relations", + "description": "Updates a relation between the incident and related resources" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/incidents/relations/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Incident Relations", + "operation": "Delete Incident Relations", + "description": "Deletes a relation between the incident and related resources" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Get Threat Intelligence", + "description": "Gets Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Update Threat Intelligence", + "description": "Updates Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Delete Threat Intelligence", + "description": "Deletes Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/query/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Query Threat Intelligence", + "description": "Query Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/metrics/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Collect Threat Intelligence Metrics", + "description": "Collect Threat Intelligence Metrics" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/bulkDelete/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Bulk Delete Threat Intelligence", + "description": "Bulk Delete Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/bulkTag/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Bulk Tags Threat Intelligence", + "description": "Bulk Tags Threat Intelligence" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Update Threat Intelligence Indicators", + "description": "Updates Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Delete Threat Intelligence Indicators", + "description": "Deletes Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/query/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Query Threat Intelligence Indicators", + "description": "Query Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/metrics/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Get Threat Intelligence Indicator Metrics", + "description": "Get Threat Intelligence Indicator Metrics" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/bulkDelete/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Bulk Delete Threat Intelligence Indicators", + "description": "Bulk Delete Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/bulkTag/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Bulk Tags Threat Intelligence Indicators", + "description": "Bulk Tags Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Get Threat Intelligence Indicators", + "description": "Gets Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/metrics/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Collect Threat Intelligence Metrics", + "description": "Collect Threat Intelligence Metrics" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/createIndicator/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Create Threat Intelligence Indicator", + "description": "Create Threat Intelligence Indicator" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/appendTags/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Append tags to Threat Intelligence Indicator", + "description": "Append tags to Threat Intelligence Indicator" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/indicators/replaceTags/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Replace Tags of Threat Intelligence Indicator", + "description": "Replace Tags of Threat Intelligence Indicator" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/threatintelligence/queryIndicators/action", + "display": { + "provider": "Microsoft Security Insights", + "resource": "ThreatIntelligence", + "operation": "Query Threat Intelligence Indicators", + "description": "Query Threat Intelligence Indicators" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Watchlists/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Watchlists", + "operation": "Get Watchlists", + "description": "Gets Watchlists" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Watchlists/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Watchlists", + "operation": "Create Watchlists", + "description": "Create Watchlists" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/Watchlists/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Watchlists", + "operation": "Delete Watchlists", + "description": "Deletes Watchlists" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/onboardingStates/read", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Onboarding States", + "operation": "Get Onboarding States", + "description": "Gets an onboarding state" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/onboardingStates/write", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Onboarding States", + "operation": "Update Onboarding States", + "description": "Updates an onboarding state" + }, + "origin": "user" + }, + { + "name": "Microsoft.SecurityInsights/onboardingStates/delete", + "display": { + "provider": "Microsoft Security Insights", + "resource": "Onboarding States", + "operation": "Delete Onboarding States", + "description": "Deletes an onboarding state" + }, + "origin": "user" + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendation.json new file mode 100644 index 000000000000..05ff2d9bbbf3 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendation.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "recommendationId": "6d4b54eb-8684-4aa3-a156-3aa37b8014bc" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Recommendations/ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "name": "ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "type": "Microsoft.SecurityInsights/Recommendations", + "properties": { + "recommendationTypeId": "Swagger_Example", + "state": "CompletedBySystem", + "title": "someText", + "description": "someText", + "creationTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastEvaluatedTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastModifiedTimeUtc": "2022-02-19T03:57:31.7964447+00:00", + "suggestions": [ + { + "suggestionTypeId": "ThreatIntelligence_Example_Suggestion_Example", + "title": "someText", + "description": "someText", + "action": "someText", + "additionalProperties": { + "someKey": "someValue" + } + } + ], + "resourceId": "someId", + "additionalProperties": { + "someKey": "someValue" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendations.json new file mode 100644 index 000000000000..e66e13f05dc4 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/GetRecommendations.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Recommendations/ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "name": "ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "type": "Microsoft.SecurityInsights/Recommendations", + "properties": { + "recommendationTypeId": "ThreatIntelligence_Example", + "state": "CompletedBySystem", + "title": "someText", + "description": "someText", + "creationTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastEvaluatedTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastModifiedTimeUtc": "2022-02-19T03:57:31.7964447+00:00", + "suggestions": [ + { + "suggestionTypeId": "ThreatIntelligence_Example_Suggestion_Example", + "title": "someText", + "description": "someText", + "action": "someText", + "additionalProperties": { + "someKey": "someValue" + } + } + ], + "resourceId": "someId", + "additionalProperties": { + "someKey": "someValue" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/PatchRecommendation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/PatchRecommendation.json new file mode 100644 index 000000000000..d4613a5de0df --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/PatchRecommendation.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "recommendationId": "6d4b54eb-8684-4aa3-a156-3aa37b8014bc", + "recommendationPatch": { + "properties": { + "state": "Active" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Recommendations/ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "name": "ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "type": "Microsoft.SecurityInsights/Recommendations", + "properties": { + "recommendationTypeId": "ThreatIntelligence_Example", + "state": "CompletedByUser", + "title": "someText", + "description": "someText", + "creationTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastEvaluatedTimeUtc": "2022-02-19T03:09:03.4888396+00:00", + "lastModifiedTimeUtc": "2022-02-19T03:57:31.7964447+00:00", + "suggestions": [ + { + "suggestionTypeId": "ThreatIntelligence_Example_Suggestion_Example", + "title": "someText", + "description": "someText", + "action": "someText", + "additionalProperties": { + "someKey": "someValue" + } + } + ], + "resourceId": "someId", + "additionalProperties": { + "someKey": "someValue" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/ReevaluateRecommendation.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/ReevaluateRecommendation.json new file mode 100644 index 000000000000..9cf9dc63325e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/recommendations/ReevaluateRecommendation.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "recommendationId": "6d4b54eb-8684-4aa3-a156-3aa37b8014bc" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Recommendations/ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "name": "ceea048e-923e-4eeb-8fcb-6cb0c06b101f", + "type": "Microsoft.SecurityInsights/Recommendations", + "properties": { + "lastEvaluatedTimeUtc": "2023-10-10T03:09:03.4888396+00:00" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/repositories/GetRepositories.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/repositories/GetRepositories.json new file mode 100644 index 000000000000..24a5b6fa6c7f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/repositories/GetRepositories.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "repoType": "Github", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "repositoryAccess": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "repositoryAccess": { + "kind": "OAuth", + "code": "939fd7c6caf754f4f41f", + "state": "state", + "clientId": "54b3c2c0-1f48-4a1c-af9f-6399c3240b73" + } + } + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "url": "https://api.github.com/repos/user/reponame", + "fullName": "reponame", + "installationId": 42424242, + "branches": [ + "master", + "develop" + ] + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/CreateAnomalySecurityMLAnalyticsSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/CreateAnomalySecurityMLAnalyticsSetting.json new file mode 100644 index 000000000000..80340d54e80f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/CreateAnomalySecurityMLAnalyticsSetting.json @@ -0,0 +1,245 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsResourceName": "f209187f-1d17-4431-94af-c141bf5f23db", + "securityMLAnalyticsSetting": { + "kind": "Anomaly", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "properties": { + "displayName": "Login from unusual region", + "description": "When account logs from a source region that has rarely been logged in from during the last 14 days, an anomaly is triggered.", + "enabled": true, + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "tactics": [ + "Exfiltration", + "CommandAndControl" + ], + "techniques": [ + "T1037", + "T1021" + ], + "anomalyVersion": "1.0.5", + "customizableObservations": { + "multiSelectObservations": null, + "singleSelectObservations": [ + { + "supportedValues": [ + "Palo Alto Networks", + "Fortinet", + "Check Point" + ], + "value": [ + "Palo Alto Networks" + ], + "supportedValuesKql": null, + "valuesKql": null, + "name": "Device vendor", + "description": "Select device vendor of network connection logs from CommonSecurityLog", + "sequenceNumber": 1, + "rerun": "RerunAlways" + } + ], + "prioritizeExcludeObservations": null, + "thresholdObservations": [ + { + "minimum": "1", + "maximum": "100", + "value": "25", + "name": "Daily data transfer threshold in MB", + "description": "Suppress anomalies when daily data transfered (in MB) per hour is less than the chosen value", + "sequenceNumber": 1, + "rerun": "RerunAlways" + }, + { + "minimum": "2", + "maximum": "10", + "value": "3", + "name": "Number of standard deviations", + "description": "Triggers anomalies when number of standard deviations is greater than the chosen value", + "sequenceNumber": 2, + "rerun": "RerunAlways" + } + ], + "singleValueObservations": null + }, + "frequency": "PT1H", + "settingsStatus": "Production", + "isDefaultSettings": true, + "anomalySettingsVersion": 0, + "settingsDefinitionId": "f209187f-1d17-4431-94af-c141bf5f23db" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings/f209187f-1d17-4431-94af-c141bf5f23db", + "name": "f209187f-1d17-4431-94af-c141bf5f23db", + "etag": "\"01005144-0000-0d00-0000-6058632c0000\"", + "kind": "Anomaly", + "type": "Microsoft.SecurityInsights/securityMLAnalyticsSettings", + "properties": { + "displayName": "Login from unusual region", + "description": "When account logs from a source region that has rarely been logged in from during the last 14 days, an anomaly is triggered.", + "enabled": true, + "lastModifiedUtc": "2021-10-20T13:17:11.5340061Z", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "tactics": [ + "Exfiltration", + "CommandAndControl" + ], + "techniques": [ + "T1037", + "T1021" + ], + "anomalyVersion": "1.0.5", + "customizableObservations": { + "multiSelectObservations": null, + "singleSelectObservations": [ + { + "supportedValues": [ + "Palo Alto Networks", + "Fortinet", + "Check Point" + ], + "value": [ + "Palo Alto Networks" + ], + "supportedValuesKql": null, + "valuesKql": null, + "name": "Device vendor", + "description": "Select device vendor of network connection logs from CommonSecurityLog", + "sequenceNumber": 1, + "rerun": "RerunAlways" + } + ], + "prioritizeExcludeObservations": null, + "thresholdObservations": [ + { + "minimum": "1", + "maximum": "100", + "value": "25", + "name": "Daily data transfer threshold in MB", + "description": "Suppress anomalies when daily data transfered (in MB) per hour is less than the chosen value", + "sequenceNumber": 1, + "rerun": "RerunAlways" + }, + { + "minimum": "2", + "maximum": "10", + "value": "3", + "name": "Number of standard deviations", + "description": "Triggers anomalies when number of standard deviations is greater than the chosen value", + "sequenceNumber": 2, + "rerun": "RerunAlways" + } + ], + "singleValueObservations": null + }, + "frequency": "PT1H", + "settingsStatus": "Production", + "isDefaultSettings": true, + "anomalySettingsVersion": 0, + "settingsDefinitionId": "f209187f-1d17-4431-94af-c141bf5f23db" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings/f209187f-1d17-4431-94af-c141bf5f23db", + "name": "f209187f-1d17-4431-94af-c141bf5f23db", + "etag": "\"01007444-0000-0d00-0000-605863a70000\"", + "kind": "Anomaly", + "type": "Microsoft.SecurityInsights/securityMLAnalyticsSettings", + "properties": { + "displayName": "Login from unusual region", + "description": "When account logs from a source region that has rarely been logged in from during the last 14 days, an anomaly is triggered.", + "enabled": true, + "lastModifiedUtc": "2021-10-20T13:17:11.5340061Z", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "tactics": [ + "Exfiltration", + "CommandAndControl" + ], + "techniques": [ + "T1037", + "T1021" + ], + "anomalyVersion": "1.0.5", + "customizableObservations": { + "multiSelectObservations": null, + "singleSelectObservations": [ + { + "supportedValues": [ + "Palo Alto Networks", + "Fortinet", + "Check Point" + ], + "value": [ + "Palo Alto Networks" + ], + "supportedValuesKql": null, + "valuesKql": null, + "name": "Device vendor", + "description": "Select device vendor of network connection logs from CommonSecurityLog", + "sequenceNumber": 1, + "rerun": "RerunAlways" + } + ], + "prioritizeExcludeObservations": null, + "thresholdObservations": [ + { + "minimum": "1", + "maximum": "100", + "value": "25", + "name": "Daily data transfer threshold in MB", + "description": "Suppress anomalies when daily data transfered (in MB) per hour is less than the chosen value", + "sequenceNumber": 1, + "rerun": "RerunAlways" + }, + { + "minimum": "2", + "maximum": "10", + "value": "3", + "name": "Number of standard deviations", + "description": "Triggers anomalies when number of standard deviations is greater than the chosen value", + "sequenceNumber": 2, + "rerun": "RerunAlways" + } + ], + "singleValueObservations": null + }, + "frequency": "PT1H", + "settingsStatus": "Production", + "isDefaultSettings": true, + "anomalySettingsVersion": 0, + "settingsDefinitionId": "f209187f-1d17-4431-94af-c141bf5f23db" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/DeleteSecurityMLAnalyticsSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/DeleteSecurityMLAnalyticsSetting.json new file mode 100644 index 000000000000..5b9e3af7c139 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/DeleteSecurityMLAnalyticsSetting.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsResourceName": "f209187f-1d17-4431-94af-c141bf5f23db" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAllSecurityMLAnalyticsSettings.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAllSecurityMLAnalyticsSettings.json new file mode 100644 index 000000000000..8b05f45ce256 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAllSecurityMLAnalyticsSettings.json @@ -0,0 +1,94 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings/f209187f-1d17-4431-94af-c141bf5f23db", + "name": "f209187f-1d17-4431-94af-c141bf5f23db", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/securityMLAnalyticsSettings", + "kind": "Anomaly", + "properties": { + "displayName": "Login from unusual region", + "description": "When account logs from a source region that has rarely been logged in from during the last 14 days, an anomaly is triggered.", + "enabled": true, + "lastModifiedUtc": "2021-10-20T13:13:11.5340061Z", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "tactics": [ + "Exfiltration", + "CommandAndControl" + ], + "techniques": [ + "T1037", + "T1021" + ], + "anomalyVersion": "1.0.5", + "customizableObservations": { + "multiSelectObservations": null, + "singleSelectObservations": [ + { + "supportedValues": [ + "Palo Alto Networks", + "Fortinet", + "Check Point" + ], + "value": [ + "Palo Alto Networks" + ], + "supportedValuesKql": null, + "valuesKql": null, + "name": "Device vendor", + "description": "Select device vendor of network connection logs from CommonSecurityLog", + "sequenceNumber": 1, + "rerun": "RerunAlways" + } + ], + "prioritizeExcludeObservations": null, + "thresholdObservations": [ + { + "minimum": "1", + "maximum": "100", + "value": "25", + "name": "Daily data transfer threshold in MB", + "description": "Suppress anomalies when daily data transfered (in MB) per hour is less than the chosen value", + "sequenceNumber": 1, + "rerun": "RerunAlways" + }, + { + "minimum": "2", + "maximum": "10", + "value": "3", + "name": "Number of standard deviations", + "description": "Triggers anomalies when number of standard deviations is greater than the chosen value", + "sequenceNumber": 2, + "rerun": "RerunAlways" + } + ], + "singleValueObservations": null + }, + "frequency": "PT1H", + "settingsStatus": "Production", + "isDefaultSettings": true, + "anomalySettingsVersion": 0, + "settingsDefinitionId": "f209187f-1d17-4431-94af-c141bf5f23db" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAnomalySecurityMLAnalyticsSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAnomalySecurityMLAnalyticsSetting.json new file mode 100644 index 000000000000..3ada5d9d97de --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/securityMLAnalyticsSettings/GetAnomalySecurityMLAnalyticsSetting.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsResourceName": "myFirstAnomalySettings" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/securityMLAnalyticsSettings/f209187f-1d17-4431-94af-c141bf5f23db", + "name": "f209187f-1d17-4431-94af-c141bf5f23db", + "etag": "\"260090e2-0000-0d00-0000-5d6fb8670000\"", + "type": "Microsoft.SecurityInsights/securityMLAnalyticsSettings", + "kind": "Anomaly", + "properties": { + "displayName": "Login from unusual region", + "description": "When account logs from a source region that has rarely been logged in from during the last 14 days, an anomaly is triggered.", + "enabled": true, + "lastModifiedUtc": "2021-10-20T13:13:11.5340061Z", + "requiredDataConnectors": [ + { + "connectorId": "AWS", + "dataTypes": [ + "AWSCloudTrail" + ] + } + ], + "tactics": [ + "Exfiltration", + "CommandAndControl" + ], + "techniques": [ + "T1037", + "T1021" + ], + "anomalyVersion": "1.0.5", + "customizableObservations": { + "multiSelectObservations": null, + "singleSelectObservations": [ + { + "supportedValues": [ + "Palo Alto Networks", + "Fortinet", + "Check Point" + ], + "value": [ + "Palo Alto Networks" + ], + "supportedValuesKql": null, + "valuesKql": null, + "name": "Device vendor", + "description": "Select device vendor of network connection logs from CommonSecurityLog", + "sequenceNumber": 1, + "rerun": "RerunAlways" + } + ], + "prioritizeExcludeObservations": null, + "thresholdObservations": [ + { + "minimum": "1", + "maximum": "100", + "value": "25", + "name": "Daily data transfer threshold in MB", + "description": "Suppress anomalies when daily data transfered (in MB) per hour is less than the chosen value", + "sequenceNumber": 1, + "rerun": "RerunAlways" + }, + { + "minimum": "2", + "maximum": "10", + "value": "3", + "name": "Number of standard deviations", + "description": "Triggers anomalies when number of standard deviations is greater than the chosen value", + "sequenceNumber": 2, + "rerun": "RerunAlways" + } + ], + "singleValueObservations": null + }, + "frequency": "PT1H", + "settingsStatus": "Production", + "isDefaultSettings": true, + "anomalySettingsVersion": 0, + "settingsDefinitionId": "f209187f-1d17-4431-94af-c141bf5f23db" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/DeleteEyesOnSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/DeleteEyesOnSetting.json new file mode 100644 index 000000000000..eef21801b41d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/DeleteEyesOnSetting.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsName": "EyesOn" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetAllSettings.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetAllSettings.json new file mode 100644 index 000000000000..e2a44d407bec --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetAllSettings.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirInt/providers/Microsoft.SecurityInsights/settings/EyesOn", + "name": "EyesOn", + "type": "Microsoft.SecurityInsights/settings", + "kind": "EyesOn", + "properties": { + "isEnabled": true + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetEyesOnSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetEyesOnSetting.json new file mode 100644 index 000000000000..af9271ee72a8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/GetEyesOnSetting.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsName": "EyesOn" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirInt/providers/Microsoft.SecurityInsights/settings/EyesOn", + "name": "EyesOn", + "type": "Microsoft.SecurityInsights/settings", + "kind": "EyesOn", + "properties": { + "isEnabled": true + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/UpdateEyesOnSetting.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/UpdateEyesOnSetting.json new file mode 100644 index 000000000000..8a680415d27b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/settings/UpdateEyesOnSetting.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "settingsName": "EyesOn", + "settings": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "EyesOn", + "properties": {} + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirInt/providers/Microsoft.SecurityInsights/settings/EyesOn", + "name": "EyesOn", + "type": "Microsoft.SecurityInsights/settings", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "EyesOn", + "properties": { + "isEnabled": true + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/mms-eus/providers/Microsoft.OperationalInsights/workspaces/avdvirInt/providers/Microsoft.SecurityInsights/settings/EyesOn", + "name": "EyesOn", + "type": "Microsoft.SecurityInsights/settings", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "kind": "EyesOn", + "properties": { + "isEnabled": true + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/CreateSourceControl.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/CreateSourceControl.json new file mode 100644 index 000000000000..45f669937c13 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/CreateSourceControl.json @@ -0,0 +1,162 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sourceControlId": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "sourceControl": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "My Source Control", + "description": "This is a source control", + "repoType": "Github", + "contentTypes": [ + "AnalyticRules", + "Workbook" + ], + "repository": { + "url": "https://github.com/user/repo", + "branch": "master", + "displayUrl": "https://github.com/user/repo" + }, + "repositoryAccess": { + "kind": "OAuth", + "code": "939fd7c6caf754f4f41f", + "state": "state", + "clientId": "54b3c2c0-1f48-4a1c-af9f-6399c3240b73" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/sourcecontrols/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "version": "V2", + "name": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "type": "Microsoft.SecurityInsights/SourceControls", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "id": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "displayName": "My Source Control", + "description": "this is a source control", + "repoType": "Github", + "contentTypes": [ + "AnalyticRules", + "Workbook" + ], + "repository": { + "url": "https://github.com/user/repo", + "branch": "master", + "displayUrl": "https://github.com/user/repo", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "servicePrincipal": { + "id": "2d297bee-cb45-444a-a9ce-904484f0bcd6", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "appId": "42a43de2-b712-4408-9680-2514fed984e6" + }, + "repositoryResourceInfo": { + "webhook": { + "webhookId": "342768323", + "webhookUrl": "https://cac.sentinel.azure.com/workspaces/b7c525e9-1bfa-4435-88c0-817e13abb088/webhooks/ado/sourceControl/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "webhookSecretUpdateTime": "2021-01-01T17:18:19.1234567Z" + }, + "gitHubResourceInfo": { + "appInstallationId": "123" + }, + "azureDevOpsResourceInfo": null + }, + "lastDeploymentInfo": { + "deploymentFetchStatus": "Success", + "deployment": { + "deploymentId": "4985046420", + "deploymentState": "Completed", + "deploymentResult": "Success", + "deploymentTime": "2021-01-01T17:18:19.1234567Z", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "message": "Successful deployment" + }, + "pullRequest": { + "url": "https://github.com/user/repo/pull/123", + "state": "Open" + } + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/sourcecontrols/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "version": "V2", + "name": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "type": "Microsoft.SecurityInsights/SourceControls", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "id": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "displayName": "My Source Control", + "description": "this is a source control", + "repoType": "Github", + "contentTypes": [ + "AnalyticRules", + "Workbook" + ], + "repository": { + "url": "https://github.com/user/repo", + "branch": "master", + "displayUrl": "https://github.com/user/repo", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "servicePrincipal": { + "id": "2d297bee-cb45-444a-a9ce-904484f0bcd6", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "appId": "42a43de2-b712-4408-9680-2514fed984e6" + }, + "repositoryResourceInfo": { + "webhook": { + "webhookId": "342768323", + "webhookUrl": "https://cac.sentinel.azure.com/workspaces/b7c525e9-1bfa-4435-88c0-817e13abb088/webhooks/ado/sourceControl/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "webhookSecretUpdateTime": "2021-01-01T17:18:19.1234567Z" + }, + "gitHubResourceInfo": { + "appInstallationId": "123" + }, + "azureDevOpsResourceInfo": null + }, + "lastDeploymentInfo": { + "deploymentFetchStatus": "Success", + "deployment": { + "deploymentId": "4985046420", + "deploymentState": "Completed", + "deploymentResult": "Success", + "deploymentTime": "2021-01-01T17:18:19.1234567Z", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "message": "Successful deployment" + }, + "pullRequest": { + "url": "https://github.com/user/repo/pull/123", + "state": "Open" + } + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/DeleteSourceControl.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/DeleteSourceControl.json new file mode 100644 index 000000000000..618f54c0f872 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/DeleteSourceControl.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sourceControlId": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "repositoryAccess": { + "properties": { + "repositoryAccess": { + "kind": "OAuth", + "code": "939fd7c6caf754f4f41f", + "state": "state", + "clientId": "54b3c2c0-1f48-4a1c-af9f-6399c3240b73" + } + } + } + }, + "responses": { + "200": { + "body": { + "warning": { + "code": "SourceControlWarning_DeleteServicePrincipal", + "message": "ServicePrincipal has not been removed due to insufficient permissions." + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControlById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControlById.json new file mode 100644 index 000000000000..9ca284f716cc --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControlById.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "sourceControlId": "789e0c1f-4a3d-43ad-809c-e713b677b04a" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/sourcecontrols/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "version": "V2", + "name": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "type": "Microsoft.SecurityInsights/SourceControls", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "id": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "displayName": "My Source Control", + "description": "this is a source control", + "repoType": "Github", + "contentTypes": [ + "AnalyticRules", + "Workbook" + ], + "repository": { + "url": "https://github.com/user/repo", + "branch": "master", + "displayUrl": "https://github.com/user/repo", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "servicePrincipal": { + "id": "2d297bee-cb45-444a-a9ce-904484f0bcd6", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "appId": "42a43de2-b712-4408-9680-2514fed984e6" + }, + "repositoryResourceInfo": { + "webhook": { + "webhookId": "342768323", + "webhookUrl": "https://cac.sentinel.azure.com/workspaces/b7c525e9-1bfa-4435-88c0-817e13abb088/webhooks/ado/sourceControl/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "webhookSecretUpdateTime": "2021-01-01T17:18:19.1234567Z" + }, + "gitHubResourceInfo": { + "appInstallationId": "123" + }, + "azureDevOpsResourceInfo": null + }, + "lastDeploymentInfo": { + "deploymentFetchStatus": "Success", + "deployment": { + "deploymentId": "4985046420", + "deploymentState": "Completed", + "deploymentResult": "Success", + "deploymentTime": "2021-01-01T17:18:19.1234567Z", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "message": "Successful deployment" + }, + "pullRequest": { + "url": "https://github.com/user/repo/pull/123", + "state": "Open" + } + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControls.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControls.json new file mode 100644 index 000000000000..6319687c3238 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/sourcecontrols/GetSourceControls.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/sourcecontrols/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "version": "V2", + "name": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "type": "Microsoft.SecurityInsights/SourceControls", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "id": "789e0c1f-4a3d-43ad-809c-e713b677b04a", + "displayName": "My Source Control", + "description": "this is a source control", + "repoType": "Github", + "contentTypes": [ + "AnalyticRules", + "Workbook" + ], + "repository": { + "url": "https://github.com/user/repo", + "branch": "master", + "displayUrl": "https://github.com/user/repo", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "servicePrincipal": { + "id": "2d297bee-cb45-444a-a9ce-904484f0bcd6", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "appId": "42a43de2-b712-4408-9680-2514fed984e6" + }, + "repositoryResourceInfo": { + "webhook": { + "webhookId": "342768323", + "webhookUrl": "https://cac.sentinel.azure.com/workspaces/b7c525e9-1bfa-4435-88c0-817e13abb088/webhooks/ado/sourceControl/789e0c1f-4a3d-43ad-809c-e713b677b04a", + "webhookSecretUpdateTime": "2021-01-01T17:18:19.1234567Z" + }, + "gitHubResourceInfo": { + "appInstallationId": "123" + }, + "azureDevOpsResourceInfo": null + }, + "lastDeploymentInfo": { + "deploymentFetchStatus": "Success", + "deployment": { + "deploymentId": "4985046420", + "deploymentState": "Completed", + "deploymentResult": "Success", + "deploymentTime": "2021-01-01T17:18:19.1234567Z", + "deploymentLogsUrl": "https://github.com/user/repo/actions" + }, + "message": "Successful deployment" + }, + "pullRequest": { + "url": "https://github.com/user/repo/pull/123", + "state": "Open" + } + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/AppendTagsThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/AppendTagsThreatIntelligence.json new file mode 100644 index 000000000000..9c7c9a745642 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/AppendTagsThreatIntelligence.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "name": "d9cd6f0b-96b9-3984-17cd-a779d1e15a93", + "ThreatIntelligenceAppendTags": { + "threatIntelligenceTags": [ + "tag1", + "tag2" + ] + } + }, + "responses": { + "200": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CollectThreatIntelligenceMetrics.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CollectThreatIntelligenceMetrics.json new file mode 100644 index 000000000000..f14ee6dd3137 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CollectThreatIntelligenceMetrics.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "lastUpdatedTimeUtc": "2021-09-01T19:44:44.117403Z", + "threatTypeMetrics": [ + { + "metricName": "compromised", + "metricValue": 20 + } + ], + "patternTypeMetrics": [ + { + "metricName": "url", + "metricValue": 20 + } + ], + "sourceMetrics": [ + { + "metricName": "Azure Sentinel", + "metricValue": 10315 + }, + { + "metricName": "zinga", + "metricValue": 2 + } + ] + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CreateThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CreateThreatIntelligence.json new file mode 100644 index 000000000000..30ea6e066df0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/CreateThreatIntelligence.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ThreatIntelligenceProperties": { + "kind": "indicator", + "properties": { + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "confidence": 78, + "createdByRef": "contoso@contoso.com", + "description": "debugging indicators", + "externalReferences": [], + "granularMarkings": [], + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "labels": [], + "modified": "", + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "revoked": false, + "validFrom": "2021-09-15T17:44:00.114052Z", + "validUntil": "" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "name": "180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "etag": "\"0000322c-0000-0800-0000-5e976c960000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-09-15T20:20:38.6160949Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--a2b6a95e-2108-4a38-bd49-ef95811bbcd7", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2020-04-15T20:20:38.6161887Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-09-15T17:44:00.114052Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "name": "180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "etag": "\"0000322c-0000-0800-0000-5e976c960000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-09-15T20:20:38.6160949Z", + "createdByRef": "aztestConnectors@contoso.com", + "externalId": "indicator--a2b6a95e-2108-4a38-bd49-ef95811bbcd7", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-09-15T20:20:38.6161887Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-09-15T17:44:00.114052Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/DeleteThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/DeleteThreatIntelligence.json new file mode 100644 index 000000000000..78e7f16b356b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/DeleteThreatIntelligence.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "name": "d9cd6f0b-96b9-3984-17cd-a779d1e15a93" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligence.json new file mode 100644 index 000000000000..57dbeaff2c78 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligence.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/27d963e6-e6e4-e0f9-e9d7-c53985b3bbe8", + "name": "27d963e6-e6e4-e0f9-e9d7-c53985b3bbe8", + "etag": "\"00002f2c-0000-0800-0000-5e976a8e0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 90, + "created": "2021-04-15T20:11:57.9666134Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--8516d567-0daa-4614-8745-e3591e1b48cf", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T20:15:11.0746926Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema 2", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + }, + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "name": "e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "etag": "\"00002a2c-0000-0800-0000-5e97683b0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T19:51:17.1050923Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--73be1729-babb-4348-a6c4-94621cae2530", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T20:15:11.074903Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "patching tags" + ], + "displayName": "updated indicator", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligenceById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligenceById.json new file mode 100644 index 000000000000..4ebbdcbcbcc8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/GetThreatIntelligenceById.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "name": "e16ef847-962e-d7b6-9c8b-a33e4bd30e47" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "name": "e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "etag": "\"00002a2c-0000-0800-0000-5e97683b0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T19:51:17.1050923Z", + "createdByRef": "aztestConnectors@dataconnector.ccsctp.net", + "externalId": "indicator--73be1729-babb-4348-a6c4-94621cae2530", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T20:18:49.2259902Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "patching tags" + ], + "displayName": "updated indicator", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://abc.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceCount.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceCount.json new file mode 100644 index 000000000000..4d392b7d8552 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceCount.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "tiType": "main", + "Query": { + "condition": { + "clauses": [ + { + "field": "lastUpdatedTimeUtc", + "operator": "OnOrBeforeAbsolute", + "values": [ + "2024-02-09T23:59:59.999Z" + ] + } + ], + "conditionConnective": null + } + } + }, + "responses": { + "200": { + "body": { + "count": 3 + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceQuery.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceQuery.json new file mode 100644 index 000000000000..e81ed7e33c68 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/PostThreatIntelligenceQuery.json @@ -0,0 +1,122 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "tiType": "main", + "Query": { + "condition": { + "clauses": [ + { + "field": "lastUpdatedTimeUtc", + "operator": "OnOrBeforeAbsolute", + "values": [ + "2024-02-09T23:59:59.999Z" + ] + } + ], + "stixObjectType": "attack-pattern", + "conditionConnective": null + }, + "sortBy": { + "field": "lastUpdatedTimeUtc", + "direction": "DESC" + }, + "minPageSize": 100, + "maxPageSize": 100 + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/threatintelligence/dGxwLW1peGVkVHlwZXMtd2l0aC1SdWxlcy0y---attack-pattern--fb6aa549-c94a-4e45-b4fd-7e32602dad85", + "name": "dGxwLW1peGVkVHlwZXMtd2l0aC1SdWxlcy0y---attack-pattern--fb6aa549-c94a-4e45-b4fd-7e32602dad85", + "type": "Microsoft.SecurityInsights/threatintelligence", + "kind": "AttackPattern", + "properties": { + "data": { + "name": "Attack Pattern 2.1", + "description": "menuPass appears to favor spear phishing to deliver payloads to the intended targets. While the attackers behind menuPass have used other RATs in their campaign, it appears that they use PIVY as their primary persistence mechanism.", + "kill_chain_phases": [ + { + "kill_chain_name": "mandiant-attack-lifecycle-model", + "phase_name": "initial-compromise" + } + ], + "aliases": [ + "alias_1", + "alias_2" + ], + "external_references": [ + { + "description": "spear phishing", + "external_id": "CAPEC-163", + "hashes": null, + "source_name": "capec", + "url": null + } + ], + "granular_markings": [ + { + "lang": "en", + "marking_ref": "marking-definition--089a6ecb-cc15-43cc-9494-767639779123", + "selectors": [ + "description", + "labels" + ] + } + ], + "confidence": 100, + "lang": "en", + "extensions": { + "sentinel-ext": { + "severity": null + }, + "extension-definition--d83fce45-ef58-4c6c-a3f4-1fbc32e98c6e": { + "extension_type": "property-extension", + "rank": 5, + "toxicity": 8 + } + }, + "type": "attack-pattern", + "id": "attack-pattern--fb6aa549-c94a-4e45-b4fd-7e32602dad85", + "created": "2015-05-15T09:12:16.432Z", + "modified": "2015-05-20T09:12:16.432Z", + "spec_version": "2.1", + "created_by_ref": "identity--f431f809-377b-45e0-aa1c-6a4751cae5ff", + "object_marking_refs": [ + "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da" + ], + "revoked": true, + "labels": [ + "heartbleed", + "has-logo" + ] + }, + "createdBy": { + "objectId": "00000000-0000-0000-0000-000000000000", + "email": "", + "name": "" + }, + "source": "mySource", + "firstIngestedTimeUtc": "2024-02-05T22:47:29.4948816", + "lastIngestedTimeUtc": "2024-02-05T22:47:29.4948816", + "ingestionRulesVersion": "00000000-0000-0000-0000-000000000000", + "lastUpdateMethod": "File Import", + "lastModifiedBy": { + "objectId": "00000000-0000-0000-0000-000000000000", + "email": "", + "name": "" + }, + "lastUpdatedDateTimeUtc": "2024-02-05T22:47:29.4948816", + "relationshipHints": null + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/QueryThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/QueryThreatIntelligence.json new file mode 100644 index 000000000000..89007162ebc9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/QueryThreatIntelligence.json @@ -0,0 +1,107 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ThreatIntelligenceFilteringCriteria": { + "pageSize": 100, + "minConfidence": 25, + "maxConfidence": 80, + "minValidUntil": "2021-04-05T17:44:00.114052Z", + "maxValidUntil": "2021-04-25T17:44:00.114052Z", + "sources": [ + "Azure Sentinel" + ], + "sortBy": [ + { + "itemKey": "lastUpdatedTimeUtc", + "sortOrder": "descending" + } + ] + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/27d963e6-e6e4-e0f9-e9d7-c53985b3bbe8", + "name": "27d963e6-e6e4-e0f9-e9d7-c53985b3bbe8", + "etag": "\"00002f2c-0000-0800-0000-5e976a8e0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 90, + "created": "2021-04-15T20:11:57.9666134Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--8516d567-0daa-4614-8745-e3591e1b48cf", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2020-04-15T20:15:11.0746926Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema 2", + "description": "debugging indicators 2", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z", + "parsedPattern": [ + { + "patternTypeKey": "network-traffic", + "patternTypeValues": [ + { + "valueType": "0", + "value": "SSH-2.0-PuTTY_Release_0.64" + }, + { + "valueType": "1", + "value": "194.88.106.146" + } + ] + } + ] + } + }, + { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "name": "e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "etag": "\"00002a2c-0000-0800-0000-5e97683b0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T19:51:17.1050923Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--73be1729-babb-4348-a6c4-94621cae2530", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T20:15:11.074903Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "patching tags" + ], + "displayName": "updated indicator", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/ReplaceTagsThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/ReplaceTagsThreatIntelligence.json new file mode 100644 index 000000000000..706b5fb9c3b2 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/ReplaceTagsThreatIntelligence.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "name": "d9cd6f0b-96b9-3984-17cd-a779d1e15a93", + "ThreatIntelligenceReplaceTags": { + "etag": "\"0000262c-0000-0800-0000-5e9767060000\"", + "kind": "indicator", + "properties": { + "threatIntelligenceTags": [ + "patching tags" + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "name": "e16ef847-962e-d7b6-9c8b-a33e4bd30e47", + "etag": "\"00002a2c-0000-0800-0000-5e97683b0000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T19:51:17.1050923Z", + "createdByRef": "aztestConnectors@dataconnector.ccsctp.net", + "externalId": "indicator--73be1729-babb-4348-a6c4-94621cae2530", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T19:56:08.828946Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "patching tags" + ], + "displayName": "updated indicator", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://abc.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/UpdateThreatIntelligence.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/UpdateThreatIntelligence.json new file mode 100644 index 000000000000..8531a305aa5b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/threatintelligence/UpdateThreatIntelligence.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "bd794837-4d29-4647-9105-6339bfdb4e6a", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "name": "d9cd6f0b-96b9-3984-17cd-a779d1e15a93", + "ThreatIntelligenceProperties": { + "kind": "indicator", + "properties": { + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "confidence": 78, + "createdByRef": "contoso@contoso.com", + "description": "debugging indicators", + "externalReferences": [], + "granularMarkings": [], + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "labels": [], + "modified": "", + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "revoked": false, + "validFrom": "2020-04-15T17:44:00.114052Z", + "validUntil": "" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "name": "180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "etag": "\"0000322c-0000-0800-0000-5e976c960000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T20:20:38.6160949Z", + "createdByRef": "contoso@contoso.com", + "externalId": "indicator--a2b6a95e-2108-4a38-bd49-ef95811bbcd7", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2020-04-15T20:20:38.6161887Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/bd794837-4d29-4647-9105-6339bfdb4e6a/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/ThreatIntelligence/180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "name": "180105c7-a28d-b1a2-4a78-234f6ec80fd6", + "etag": "\"0000322c-0000-0800-0000-5e976c960000\"", + "type": "Microsoft.SecurityInsights/ThreatIntelligence", + "kind": "indicator", + "properties": { + "confidence": 78, + "created": "2021-04-15T20:20:38.6160949Z", + "createdByRef": "aztestConnectors@contoso.com", + "externalId": "indicator--a2b6a95e-2108-4a38-bd49-ef95811bbcd7", + "externalReferences": [], + "granularMarkings": [], + "lastUpdatedTimeUtc": "2021-04-15T20:20:38.6161887Z", + "revoked": false, + "source": "Azure Sentinel", + "threatIntelligenceTags": [ + "new schema" + ], + "displayName": "new schema", + "description": "debugging indicators", + "threatTypes": [ + "compromised" + ], + "killChainPhases": [], + "pattern": "[url:value = 'https://www.contoso.com']", + "patternType": "url", + "validFrom": "2021-04-15T17:44:00.114052Z" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggerRuleRun_Post.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggerRuleRun_Post.json new file mode 100644 index 000000000000..11a1e0840726 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggerRuleRun_Post.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleId": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "analyticsRuleRunTriggerParameter": { + "properties": { + "executionTimeUtc": "2022-12-22T15:37:03.074Z" + } + } + }, + "responses": { + "202": { + "headers": { + "Code": "202", + "Message": "Accepted", + "Location": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/5abbc58b-9655-4f9b-80ac-5a576753e4ec?api-version=2024-10-01-preview" + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRun_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRun_Get.json new file mode 100644 index 000000000000..73dbf75aa76c --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRun_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "ruleRunId": "65360bb0-8986-4ade-a89d-af3cf44d28aa" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/65360bb0-8986-4ade-a89d-af3cf44d28aa", + "name": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "type": "Microsoft.SecurityInsights/TriggeredAnalyticsRuleRuns", + "properties": { + "executionTimeUtc": "2022-12-22T15:37:03.074Z", + "ruleId": "358e16da-ab76-4027-89e1-15937a6ed401", + "triggeredAnalyticsRuleRunId": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "provisioningState": "InProgress", + "ruleRunAdditionalData": { + "auditCorrelationId": "b8540a76-cb05-4a9b-8d52-9959b509e4ad", + "createdBy": "user@microsoft.com", + "healthCorrelationId": "dadd8fdc-fc7a-4005-a289-4e164cb75093" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRuns_Get.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRuns_Get.json new file mode 100644 index 000000000000..c9bc88e5cacf --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/triggeredAnalyticsRuleRuns/triggeredAnalyticsRuleRuns_Get.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/65360bb0-8986-4ade-a89d-af3cf44d28aa", + "name": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "type": "Microsoft.SecurityInsights/TriggeredAnalyticsRuleRuns", + "properties": { + "executionTimeUtc": "2022-12-22T15:37:03.074Z", + "ruleId": "358e16da-ab76-4027-89e1-15937a6ed401", + "triggeredAnalyticsRuleRunId": "65360bb0-8986-4ade-a89d-af3cf44d28aa", + "provisioningState": "InProgress", + "ruleRunAdditionalData": { + "auditCorrelationId": "b8540a76-cb05-4a9b-8d52-9959b509e4ad", + "createdBy": "user@microsoft.com", + "healthCorrelationId": "dadd8fdc-fc7a-4005-a289-4e164cb75093" + } + } + }, + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/triggeredAnalyticsRuleRuns/1f62ea0f-2d25-4b65-bd4d-bb9114bcbd9c", + "name": "1f62ea0f-2d25-4b65-bd4d-bb9114bcbd9c", + "type": "Microsoft.SecurityInsights/TriggeredAnalyticsRuleRuns", + "properties": { + "executionTimeUtc": "2022-12-20T15:37:03.074Z", + "ruleId": "358e16da-ab76-4027-89e1-15937a6ed401", + "triggeredAnalyticsRuleRunId": "1f62ea0f-2d25-4b65-bd4d-bb9114bcbd9c", + "provisioningState": "Succeeded", + "ruleRunAdditionalData": { + "auditCorrelationId": "763f9dae-1027-44b9-a34a-589404693670", + "createdBy": "user2@microsoft.com", + "healthCorrelationId": "b3c165ec-f53e-48c1-9677-216d9e930912" + } + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlist.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlist.json new file mode 100644 index 000000000000..2816152e079d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlist.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "watchlistAlias": "highValueAsset", + "watchlist": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "High Value Assets Watchlist", + "source": "watchlist.csv", + "sourceType": "Local file", + "provider": "Microsoft", + "description": "Watchlist from CSV content", + "itemsSearchKey": "header1" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/Watchlists", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/Watchlists", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistAndWatchlistItems.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistAndWatchlistItems.json new file mode 100644 index 000000000000..9588f62cc096 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistAndWatchlistItems.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset", + "watchlist": { + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "displayName": "High Value Assets Watchlist", + "source": "watchlist.csv", + "sourceType": "Local file", + "provider": "Microsoft", + "description": "Watchlist from CSV content", + "numberOfLinesToSkip": 1, + "rawContent": "This line will be skipped\nheader1,header2\nvalue1,value2", + "itemsSearchKey": "header1", + "contentType": "text/csv" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/Watchlists", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "type": "Microsoft.SecurityInsights/Watchlists", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistItem.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistItem.json new file mode 100644 index 000000000000..3b85ea6a66ff --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/CreateWatchlistItem.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset", + "watchlistItemId": "82ba292c-dc97-4dfc-969d-d4dd9e666842", + "watchlistItem": { + "etag": "0300bf09-0000-0000-0000-5c37296e0000", + "properties": { + "itemsKeyValue": { + "Gateway subnet": "10.0.255.224/27", + "Web Tier": "10.0.1.0/24", + "Business tier": "10.0.2.0/24", + "Data tier": "10.0.2.0/24", + "Private DMZ in": "10.0.0.0/27", + "Public DMZ out": "10.0.0.96/27" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Watchlists/highValueAsset/WatchlistItems/82ba292c-dc97-4dfc-969d-d4dd9e666842", + "etag": "0300bf09-0000-0000-0000-5c37296e0000", + "type": "Microsoft.SecurityInsights/Watchlists/WatchlistItems", + "properties": { + "watchlistItemType": "watchlist-item", + "watchlistItemId": "82ba292c-dc97-4dfc-969d-d4dd9e666842", + "tenantId": "4008512e-1d30-48b2-9ee2-d3612ed9d3ea", + "isDeleted": false, + "created": "2020-11-15T04:58:56.0748363+00:00", + "updated": "2020-11-16T16:05:20+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "itemsKeyValue": { + "Gateway subnet": "10.0.255.224/27", + "Web Tier": "10.0.1.0/24", + "Business tier": "10.0.2.0/24", + "Data tier": "10.0.2.0/24", + "Private DMZ in": "10.0.0.0/27", + "Public DMZ out": "10.0.0.96/27" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Watchlists/highValueAsset/WatchlistItems/82ba292c-dc97-4dfc-969d-d4dd9e666842", + "etag": "0300bf09-0000-0000-0000-5c37296e0000", + "type": "Microsoft.SecurityInsights/Watchlists/WatchlistItems", + "properties": { + "watchlistItemType": "watchlist-item", + "watchlistItemId": "82ba292c-dc97-4dfc-969d-d4dd9e666842", + "tenantId": "4008512e-1d30-48b2-9ee2-d3612ed9d3ea", + "isDeleted": false, + "created": "2020-11-15T04:58:56.0748363+00:00", + "updated": "2020-11-16T16:05:20+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "itemsKeyValue": { + "Gateway subnet": "10.0.255.224/27", + "Web Tier": "10.0.1.0/24", + "Business tier": "10.0.2.0/24", + "Data tier": "10.0.2.0/24", + "Private DMZ in": "10.0.0.0/27", + "Public DMZ out": "10.0.0.96/27" + } + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlist.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlist.json new file mode 100644 index 000000000000..9bcecac71974 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlist.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.SecurityInsights/watchlists/1011-01/watchlistStatuses/00000000-0000-0000-0000-000000000000?api-version=2024-10-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlistItem.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlistItem.json new file mode 100644 index 000000000000..e19989724058 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/DeleteWatchlistItem.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset", + "watchlistItemId": "4008512e-1d30-48b2-9ee2-d3612ed9d3ea" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistByAlias.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistByAlias.json new file mode 100644 index 000000000000..3d3b8ac64cd1 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistByAlias.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "type": "Microsoft.SecurityInsights/Watchlists", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "labels": [ + "Tag1", + "Tag2" + ], + "defaultDuration": "P1279DT12H30M5S", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItemById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItemById.json new file mode 100644 index 000000000000..e27900cce871 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItemById.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset", + "watchlistItemId": "3f8901fe-63d9-4875-9ad5-9fb3b8105797" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Watchlists/highValueAsset/WatchlistItems/fd37d325-7090-47fe-851a-5b5a00c3f576", + "name": "fd37d325-7090-47fe-851a-5b5a00c3f576", + "etag": "\"f2089bfa-0000-0d00-0000-601c58b42021\"", + "type": "Microsoft.SecurityInsights/Watchlists/WatchlistItems", + "properties": { + "watchlistItemType": "watchlist-item", + "watchlistItemId": "fd37d325-7090-47fe-851a-5b5a00c3f576", + "tenantId": "3f8901fe-63d9-4875-9ad5-9fb3b8105797", + "isDeleted": false, + "created": "2021-02-04T12:27:32.3783333-08:00", + "updated": "2021-02-04T12:27:32.3783333-08:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "itemsKeyValue": { + "Header-1": "v1_1", + "Header-2": "v1_2", + "Header-3": "v1_3", + "Header-4": "v1_4", + "Header-5": "v1_5" + }, + "entityMapping": {} + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItems.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItems.json new file mode 100644 index 000000000000..4f6b746ab8a8 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlistItems.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights", + "watchlistAlias": "highValueAsset" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/Watchlists/highValueAsset/WatchlistItems/fd37d325-7090-47fe-851a-5b5a00c3f576", + "name": "fd37d325-7090-47fe-851a-5b5a00c3f576", + "etag": "\"f2089bfa-0000-0d00-0000-601c58b42021\"", + "type": "Microsoft.SecurityInsights/Watchlists/WatchlistItems", + "properties": { + "watchlistItemType": "watchlist-item", + "watchlistItemId": "fd37d325-7090-47fe-851a-5b5a00c3f576", + "tenantId": "3f8901fe-63d9-4875-9ad5-9fb3b8105797", + "isDeleted": false, + "created": "2021-02-04T12:27:32.3783333-08:00", + "updated": "2021-02-04T12:27:32.3783333-08:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "itemsKeyValue": { + "Header-1": "v1_1", + "Header-2": "v1_2", + "Header-3": "v1_3", + "Header-4": "v1_4", + "Header-5": "v1_5" + }, + "entityMapping": {} + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlists.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlists.json new file mode 100644 index 000000000000..5b41775b205d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/watchlists/GetWatchlists.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "operationalInsightsResourceProvider": "Microsoft.OperationalInsights" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalIinsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/watchlists/highValueAsset", + "name": "highValueAsset", + "type": "Microsoft.SecurityInsights/Watchlists", + "etag": "\"0300bf09-0000-0000-0000-5c37296e0000\"", + "properties": { + "watchlistId": "76d5a51f-ba1f-4038-9d22-59fda38dc017", + "displayName": "High Value Assets Watchlist", + "provider": "Microsoft", + "source": "watchlist.csv", + "sourceType": "Local file", + "created": "2020-09-28T00:26:54.7746089+00:00", + "updated": "2020-09-28T00:26:57+00:00", + "createdBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "updatedBy": { + "objectId": "2046feea-040d-4a46-9e2b-91c2941bfa70", + "email": "john@contoso.com", + "name": "john doe" + }, + "description": "Watchlist from CSV content", + "watchlistType": "watchlist", + "watchlistAlias": "highValueAsset", + "itemsSearchKey": "header1", + "isDeleted": false, + "labels": [ + "Tag1", + "Tag2" + ], + "defaultDuration": "P1279DT12H30M5S", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateJob.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateJob.json new file mode 100644 index 000000000000..550d8826c37f --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateJob.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "jobName": "cfbe1338-8276-4d5d-8b96-931117f9fa0e" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58/jobs/cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "etag": "\"f20a2523-7817-47b5-a3b2-21539c00c788\"", + "name": "cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments/jobs", + "properties": { + "startTime": "2022-06-14T04:47:52.9614956Z", + "provisioningState": "InProgress" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateOrUpdateWorkspaceManagerAssignment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateOrUpdateWorkspaceManagerAssignment.json new file mode 100644 index 000000000000..850fa07cc209 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/CreateOrUpdateWorkspaceManagerAssignment.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "workspaceManagerAssignment": { + "properties": { + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo" + } + ], + "targetResourceName": "37207a7a-3b8a-438f-a559-c7df400e1b96" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments", + "properties": { + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo" + } + ], + "targetResourceName": "37207a7a-3b8a-438f-a559-c7df400e1b96" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments", + "properties": { + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo" + } + ], + "targetResourceName": "37207a7a-3b8a-438f-a559-c7df400e1b96" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteJob.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteJob.json new file mode 100644 index 000000000000..926f36f63a9e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteJob.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "jobName": "cfbe1338-8276-4d5d-8b96-931117f9fa0e" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteWorkspaceManagerAssignment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteWorkspaceManagerAssignment.json new file mode 100644 index 000000000000..d20766e090f0 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/DeleteWorkspaceManagerAssignment.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllJobs.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllJobs.json new file mode 100644 index 000000000000..24cc4a2d1f52 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllJobs.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58/jobs/cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "etag": "\"f20a2523-7817-47b5-a3b2-21539c00c788\"", + "name": "cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments/jobs", + "properties": { + "endTime": "2022-06-14T04:52:52.9614956Z", + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne", + "status": "Succeeded", + "executionTime": "2022-06-14T04:49:52.9614956Z" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo", + "status": "Failed", + "executionTime": "2022-06-14T04:50:52.9614956Z", + "errors": [ + { + "memberResourceName": "f5fa104e-c0e3-4747-9182-d342dc048a9e", + "errorMessage": "Failed to write. Status code: Forbidden." + } + ] + } + ], + "startTime": "2022-06-14T04:47:52.9614956Z", + "provisioningState": "Failed" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllWorkspaceManagerAssignments.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllWorkspaceManagerAssignments.json new file mode 100644 index 000000000000..5f9c8f11ca07 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetAllWorkspaceManagerAssignments.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments", + "properties": { + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo" + } + ], + "targetResourceName": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "lastJobEndTime": "2022-06-14T04:52:52.9614956Z", + "lastJobProvisioningState": "Failed" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetJob.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetJob.json new file mode 100644 index 000000000000..b527721bcdf9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetJob.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "jobName": "cfbe1338-8276-4d5d-8b96-931117f9fa0e" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58/jobs/cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "etag": "\"f20a2523-7817-47b5-a3b2-21539c00c788\"", + "name": "cfbe1338-8276-4d5d-8b96-931117f9fa0e", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments/jobs", + "properties": { + "endTime": "2022-06-14T04:52:52.9614956Z", + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne", + "status": "Succeeded", + "executionTime": "2022-06-14T04:49:52.9614956Z" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo", + "status": "Failed", + "executionTime": "2022-06-14T04:50:52.9614956Z", + "errors": [ + { + "memberResourceName": "f5fa104e-c0e3-4747-9182-d342dc048a9e", + "errorMessage": "Failed to write. Status code: Forbidden." + } + ] + } + ], + "startTime": "2022-06-14T04:47:52.9614956Z", + "provisioningState": "Failed" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetWorkspaceManagerAssignment.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetWorkspaceManagerAssignment.json new file mode 100644 index 000000000000..16fab3aadf32 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerAssignments/GetWorkspaceManagerAssignment.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerAssignmentName": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerAssignments/47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "47cdc5f5-37c4-47b5-bd5f-83c84b8bdd58", + "type": "Microsoft.SecurityInsights/workspaceManagerAssignments", + "properties": { + "items": [ + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleOne" + }, + { + "resourceId": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspac-es/myWorkspace/providers/Microsoft.SecurityInsights/alertRules/microsoftSecurityIncidentCreationRuleExampleTwo" + } + ], + "targetResourceName": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "lastJobEndTime": "2022-06-14T04:52:52.9614956Z", + "lastJobProvisioningState": "Failed" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/CreateOrUpdateWorkspaceManagerConfiguration.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/CreateOrUpdateWorkspaceManagerConfiguration.json new file mode 100644 index 000000000000..ec943c11b732 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/CreateOrUpdateWorkspaceManagerConfiguration.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerConfigurationName": "default", + "workspaceManagerConfiguration": { + "properties": { + "mode": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations/default", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "default", + "type": "Microsoft.SecurityInsights/workspaceManagerConfigurations", + "properties": { + "mode": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations/default", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "default", + "type": "Microsoft.SecurityInsights/workspaceManagerConfigurations", + "properties": { + "mode": "Enabled" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/DeleteWorkspaceManagerConfiguration.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/DeleteWorkspaceManagerConfiguration.json new file mode 100644 index 000000000000..c1ccde537696 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/DeleteWorkspaceManagerConfiguration.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerConfigurationName": "default" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetAllWorkspaceManagerConfigurations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetAllWorkspaceManagerConfigurations.json new file mode 100644 index 000000000000..0a84a90f2072 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetAllWorkspaceManagerConfigurations.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations/default", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "default", + "type": "Microsoft.SecurityInsights/workspaceManagerConfigurations", + "properties": { + "mode": "Enabled" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetWorkspaceManagerConfiguration.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetWorkspaceManagerConfiguration.json new file mode 100644 index 000000000000..0520ed573b2e --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerConfigurations/GetWorkspaceManagerConfiguration.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerConfigurationName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerConfigurations/default", + "etag": "\"3f6451dd-1b58-4bef-bce7-72eba6b354d7\"", + "name": "default", + "type": "Microsoft.SecurityInsights/workspaceManagerConfigurations", + "properties": { + "mode": "Enabled" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/CreateOrUpdateWorkspaceManagerGroup.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/CreateOrUpdateWorkspaceManagerGroup.json new file mode 100644 index 000000000000..9cc427bfc0c5 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/CreateOrUpdateWorkspaceManagerGroup.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerGroupName": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "workspaceManagerGroup": { + "properties": { + "description": "Group of all financial and banking institutions", + "displayName": "Banks", + "memberResourceNames": [ + "afbd324f-6c48-459c-8710-8d1e1cd03812", + "f5fa104e-c0e3-4747-9182-d342dc048a9e" + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerGroups/37207a7a-3b8a-438f-a559-c7df400e1b96", + "etag": "\"ac04c9ad-4b3c-4e13-b511-8c2225e46521\"", + "name": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "type": "Microsoft.SecurityInsights/workspaceManagerGroups", + "properties": { + "description": "Group of all financial and banking institutions", + "displayName": "Banks", + "memberResourceNames": [ + "afbd324f-6c48-459c-8710-8d1e1cd03812", + "f5fa104e-c0e3-4747-9182-d342dc048a9e" + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerGroups/37207a7a-3b8a-438f-a559-c7df400e1b96", + "etag": "\"ac04c9ad-4b3c-4e13-b511-8c2225e46521\"", + "name": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "type": "Microsoft.SecurityInsights/workspaceManagerGroups", + "properties": { + "description": "Group of all financial and banking institutions", + "displayName": "Banks", + "memberResourceNames": [ + "afbd324f-6c48-459c-8710-8d1e1cd03812", + "f5fa104e-c0e3-4747-9182-d342dc048a9e" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/DeleteWorkspaceManagerGroup.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/DeleteWorkspaceManagerGroup.json new file mode 100644 index 000000000000..7174b96fc330 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/DeleteWorkspaceManagerGroup.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerGroupName": "37207a7a-3b8a-438f-a559-c7df400e1b96" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetAllWorkspaceManagerGroups.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetAllWorkspaceManagerGroups.json new file mode 100644 index 000000000000..2fa5382f8bd9 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetAllWorkspaceManagerGroups.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerGroups/37207a7a-3b8a-438f-a559-c7df400e1b96", + "etag": "\"ac04c9ad-4b3c-4e13-b511-8c2225e46521\"", + "name": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "type": "Microsoft.SecurityInsights/workspaceManagerGroups", + "properties": { + "description": "Group of all financial and banking institutions", + "displayName": "Banks", + "memberResourceNames": [ + "afbd324f-6c48-459c-8710-8d1e1cd03812", + "f5fa104e-c0e3-4747-9182-d342dc048a9e" + ] + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetWorkspaceManagerGroup.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetWorkspaceManagerGroup.json new file mode 100644 index 000000000000..4b4a2436e875 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerGroups/GetWorkspaceManagerGroup.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerGroupName": "37207a7a-3b8a-438f-a559-c7df400e1b96" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerGroups/37207a7a-3b8a-438f-a559-c7df400e1b96", + "etag": "\"ac04c9ad-4b3c-4e13-b511-8c2225e46521\"", + "name": "37207a7a-3b8a-438f-a559-c7df400e1b96", + "type": "Microsoft.SecurityInsights/workspaceManagerGroups", + "properties": { + "description": "Group of all financial and banking institutions", + "displayName": "Banks", + "memberResourceNames": [ + "afbd324f-6c48-459c-8710-8d1e1cd03812", + "f5fa104e-c0e3-4747-9182-d342dc048a9e" + ] + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/CreateOrUpdateWorkspaceManagerMember.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/CreateOrUpdateWorkspaceManagerMember.json new file mode 100644 index 000000000000..624395f9f29d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/CreateOrUpdateWorkspaceManagerMember.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerMemberName": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "workspaceManagerMember": { + "properties": { + "targetWorkspaceResourceId": "/subscriptions/7aef9d48-814f-45ad-b644-b0343316e174/resourceGroups/otherRg/providers/Microsoft.OperationalInsights/workspaces/Example_Workspace", + "targetWorkspaceTenantId": "f676d436-8d16-42db-81b7-ab578e110ccd" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerMembers/afbd324f-6c48-459c-8710-8d1e1cd03812", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "type": "Microsoft.SecurityInsights/workspaceManagerMembers", + "properties": { + "targetWorkspaceResourceId": "/subscriptions/7aef9d48-814f-45ad-b644-b0343316e174/resourceGroups/otherRg/providers/Microsoft.OperationalInsights/workspaces/Example_Workspace", + "targetWorkspaceTenantId": "f676d436-8d16-42db-81b7-ab578e110ccd" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerMembers/afbd324f-6c48-459c-8710-8d1e1cd03812", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "type": "Microsoft.SecurityInsights/workspaceManagerMembers", + "properties": { + "targetWorkspaceResourceId": "/subscriptions/7aef9d48-814f-45ad-b644-b0343316e174/resourceGroups/otherRg/providers/Microsoft.OperationalInsights/workspaces/Example_Workspace", + "targetWorkspaceTenantId": "f676d436-8d16-42db-81b7-ab578e110ccd" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/DeleteWorkspaceManagerMember.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/DeleteWorkspaceManagerMember.json new file mode 100644 index 000000000000..b4f58817a425 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/DeleteWorkspaceManagerMember.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerMemberName": "afbd324f-6c48-459c-8710-8d1e1cd03812" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetAllWorkspaceManagerMembers.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetAllWorkspaceManagerMembers.json new file mode 100644 index 000000000000..86397ebd1e7b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetAllWorkspaceManagerMembers.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerMembers/afbd324f-6c48-459c-8710-8d1e1cd03812", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "type": "Microsoft.SecurityInsights/workspaceManagerMembers", + "properties": { + "targetWorkspaceResourceId": "/subscriptions/7aef9d48-814f-45ad-b644-b0343316e174/resourceGroups/otherRg/providers/Microsoft.OperationalInsights/workspaces/Example_Workspace", + "targetWorkspaceTenantId": "f676d436-8d16-42db-81b7-ab578e110ccd" + } + } + ] + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetWorkspaceManagerMember.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetWorkspaceManagerMember.json new file mode 100644 index 000000000000..8e82536d144d --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/examples/workspaceManagerMembers/GetWorkspaceManagerMember.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-10-01-preview", + "subscriptionId": "d0cfe6b2-9ac0-4464-9919-dccaee2e48c0", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "workspaceManagerMemberName": "afbd324f-6c48-459c-8710-8d1e1cd03812" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/d0cfe6b2-9ac0-4464-9919-dccaee2e48c0/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/workspaceManagerMembers/afbd324f-6c48-459c-8710-8d1e1cd03812", + "etag": "\"190057d0-0000-0d00-0000-5c6f5adb0000\"", + "name": "afbd324f-6c48-459c-8710-8d1e1cd03812", + "type": "Microsoft.SecurityInsights/workspaceManagerMembers", + "properties": { + "targetWorkspaceResourceId": "/subscriptions/7aef9d48-814f-45ad-b644-b0343316e174/resourceGroups/otherRg/providers/Microsoft.OperationalInsights/workspaces/Example_Workspace", + "targetWorkspaceTenantId": "f676d436-8d16-42db-81b7-ab578e110ccd" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/operations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/operations.json new file mode 100644 index 000000000000..594c8bfeec3b --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2024-10-01-preview/operations.json @@ -0,0 +1,138 @@ +{ + "swagger": "2.0", + "info": { + "title": "Security Insights", + "description": "API spec for Microsoft.SecurityInsights (Azure Security Insights) resource provider", + "version": "2024-10-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/providers/Microsoft.SecurityInsights/operations": { + "get": { + "x-ms-examples": { + "Get all operations.": { + "$ref": "./examples/operations/ListOperations.json" + } + }, + "operationId": "Operations_List", + "description": "Lists all operations available Azure Security Insights Resource Provider.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK. Successfully retrieved operations list.", + "schema": { + "$ref": "#/definitions/OperationsList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../common/2.0/types.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "OperationsList": { + "description": "Lists the operations available in the SecurityInsights RP.", + "properties": { + "nextLink": { + "description": "URL to fetch the next set of operations.", + "type": "string", + "readOnly": true + }, + "value": { + "description": "Array of operations", + "items": { + "$ref": "#/definitions/Operation" + }, + "type": "array" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "Operation": { + "description": "Operation provided by provider", + "properties": { + "display": { + "description": "Properties of the operation", + "properties": { + "description": { + "description": "Description of the operation", + "type": "string" + }, + "operation": { + "description": "Operation name", + "type": "string" + }, + "provider": { + "description": "Provider name", + "type": "string" + }, + "resource": { + "description": "Resource name", + "type": "string" + } + }, + "type": "object" + }, + "name": { + "description": "Name of the operation", + "type": "string" + }, + "origin": { + "description": "The origin of the operation", + "type": "string" + }, + "isDataAction": { + "description": "Indicates whether the operation is a data action", + "type": "boolean" + } + }, + "type": "object" + } + }, + "parameters": {} +} diff --git a/specification/securityinsights/resource-manager/readme.md b/specification/securityinsights/resource-manager/readme.md index bbd4b75179aa..cafa2e1e94b3 100644 --- a/specification/securityinsights/resource-manager/readme.md +++ b/specification/securityinsights/resource-manager/readme.md @@ -27,11 +27,54 @@ These are the global settings for the SecurityInsights API. ``` yaml openapi-type: arm -tag: package-2024-09 +tag: package-preview-2024-10-01 ``` --- +### Tag: package-preview-2024-10-01 + +These settings apply only when `--tag=package-preview-2024-10-01` is specified on the command line. + +```yaml $(tag) == 'package-preview-2024-10-01' +input-file: + - Microsoft.SecurityInsights/preview/2024-10-01-preview/AlertRules.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/AutomationRules.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/BillingStatistics.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Bookmarks.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/BusinessApplicationAgents.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentPackages.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductPackages.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentProductTemplates.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ContentTemplates.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectorDefinitions.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/dataConnectors.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/EnrichmentWithWorkspace.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Entities.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueries.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/EntityQueryTemplates.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/FileImports.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Hunts.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Incidents.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Metadata.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/OfficeConsents.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/OnboardingStates.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/operations.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Recommendations.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/SecurityMLAnalyticsSettings.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Settings.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/SourceControls.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligence.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceCount.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/ThreatIntelligenceQuery.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/TriggeredAnalyticsRuleRuns.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/Watchlists.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerAssignments.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerConfigurations.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerGroups.json + - Microsoft.SecurityInsights/preview/2024-10-01-preview/WorkspaceManagerMembers.json +``` + ### Tag: package-2024-09 These settings apply only when `--tag=package-2024-09` is specified on the command line. From 8a4eca6b060cf70da696963245656fdc440b666b Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Thu, 9 Jan 2025 11:35:33 -0800 Subject: [PATCH 07/82] Don't check custom-words.txt (#32065) * ignore custom-words.txt * test change to custom-words.txt * Revert test change to custom-words.txt --- cSpell.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cSpell.json b/cSpell.json index 1e9f2b5a716c..7b5d8d438dad 100644 --- a/cSpell.json +++ b/cSpell.json @@ -28,7 +28,8 @@ "**/package-lock.json", "cSpell.json", "eng/**", - "node_modules/**" + "node_modules/**", + "custom-words.txt" ], "ignoreRegExpList": [ "v\\d", From 1737d89d92f0f65f2bc0c2fc1a9d2f01d7dd1f95 Mon Sep 17 00:00:00 2001 From: gigi <52640944+gigigoo0@users.noreply.github.com> Date: Fri, 10 Jan 2025 09:51:39 +0800 Subject: [PATCH 08/82] Fix get polygon response schema (#32061) --- .../Search/stable/2023-06-01/search.json | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/specification/maps/data-plane/Search/stable/2023-06-01/search.json b/specification/maps/data-plane/Search/stable/2023-06-01/search.json index b3597b7e8b2c..c6f8e6cf8aeb 100644 --- a/specification/maps/data-plane/Search/stable/2023-06-01/search.json +++ b/specification/maps/data-plane/Search/stable/2023-06-01/search.json @@ -1147,13 +1147,32 @@ "Boundary": { "description": "`GeoJSON GeocodingFeature` object that describe the boundaries of a geographical area. Geometry of the feature is described with `GeoJSON GeometryCollection`.\n\nPlease note, the service typically returns a GeometryCollection with Polygon or MultiPolygon sub-types.", "type": "object", - "allOf": [ - { - "$ref": "../../../Common/stable/2023-06-01/common.json#/definitions/GeoJsonFeature" + "properties": { + "type": { + "type": "string", + "description": "The type of a feature must be Feature.", + "enum": [ + "Feature" + ], + "x-ms-enum": { + "name": "FeatureTypeEnum", + "modelAsString": true, + "values": [ + { + "value": "Feature" + } + ] + } }, - { + "geometry": { + "$ref": "../../../Common/stable/2023-06-01/common.json#/definitions/GeoJsonGeometryCollection" + }, + "properties": { "$ref": "#/definitions/BoundaryProperties" } + }, + "required": [ + "geometry" ] }, "BoundaryProperties": { From 9cda51602860201954415dab20bdcbcf389c7da9 Mon Sep 17 00:00:00 2001 From: will Date: Fri, 10 Jan 2025 09:52:37 +0800 Subject: [PATCH 09/82] Route 2024-07-01-preview update for RouteRange (#32086) * Update isSimplifiedPolygon * Fix cspell --------- Co-authored-by: Will Huang --- cSpell.json | 6 ++++++ .../Route/preview/2024-07-01-preview/route.json | 16 ++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cSpell.json b/cSpell.json index 7b5d8d438dad..a0c5f6930561 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1000,6 +1000,12 @@ "searchaddressreverseresponse" ] }, + { + "filename": "**/specification/maps/data-plane/Route/**", + "words": [ + "modelerfour" + ] + }, { "filename": "**/specification/communication/data-plane/Chat/**/communicationserviceschat.json", "words": [ diff --git a/specification/maps/data-plane/Route/preview/2024-07-01-preview/route.json b/specification/maps/data-plane/Route/preview/2024-07-01-preview/route.json index f092fb1dc557..0873834fcf7e 100644 --- a/specification/maps/data-plane/Route/preview/2024-07-01-preview/route.json +++ b/specification/maps/data-plane/Route/preview/2024-07-01-preview/route.json @@ -436,7 +436,7 @@ }, "/route/matrix": { "post": { - "description": "**Applies to**: see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\n\nThe `Route Matrix` API is an HTTP `POST` request that allows calculation of a matrix of route summaries for a set of routes defined by origin and destination locations by using a sync request. For every given origin, the service calculates the cost of routing from that origin to every given destination. The set of origins and the set of destinations can be thought of as the column and row headers of a table and each cell in the table contains the costs of routing from the origin to the destination for that cell. Route Matrices can be calculated for driving, walking and truck routes. For example, a food delivery company has 20 drivers and they need to find the closest driver to pick up the delivery from the restaurant. To solve this use case, they can call the Route Matrix API and use the travel cost to sort the drivers by their actual travel distance or time from the restaurant.\n\n\nRoute Matrices are used in several different types of applications, most commonly to solve the Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP). For each origin-destination pair in the matrix, the travel time and distance are returned. You can use the computed costs to determine which detailed routes to calculate using the Route Directions API.\n\n\nThe maximum size of a matrix for sync request it's **2500** (the number of origins multiplied by the number of destinations).\n\n\n\n### Submit Synchronous Route Matrix Request\nIf your scenario requires synchronous requests and the maximum size of the matrix is less than or equal to 2500, you might want to make synchronous request. The maximum size of a matrix for this API is **2500** (the number of origins multiplied by the number of destinations). With that constraint in mind, examples of possible matrix dimensions are: 50x50, 60x40, 90x20 (it does not need to be square).\n\n\n\n### API Limitations\n The synchronous processing of matrix is best suited for fast, small matrices of route calculation. To calculate larger matrices and heavy route calculation, use the asynchronous endpoint. The following limitation is applicable to the synchronous requests. If none of the rows in the following table match the request's parameters, the request does not meet the requirements and will not be processed.\n\n| Max matrix size | Max number of origins | Max number of destinations | Additional limits\n |------------------|------------------------|----------------------------|------------|\n| 100 | 100 | 100 | N/A |\n| 200 | 200 | 200 | All origins and destinations should be contained in an axis-aligned 400 km x 400 km bounding box. Otherwise, some matrix cells will be resolved as OUT_OF_REGION. |\n| 2500 | 1000 | 1000 | - `departAt` or `arriveAt` must be any.
- `traffic` must be historical.
- `travelMode` must be either driving or truck
- No other parameters can be used explicitly |\n\n\nExamples:\n - Request of 10x20 matrix with `traffic=live`: This request will be processed with a bounding box limit, as it matches a limit of up to 200, which includes bounding box restrictions.\n\n - Request of 10x20 matrix with default parameters (`traffic=historical`): This request will be processed without a bounding box limit, as it matches a limit of up to 2500, which does not impose bounding box restrictions.\n\n\n", + "description": "**Applies to**: see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\n\nThe `Route Matrix` API is an HTTP `POST` request that allows calculation of a matrix of route summaries for a set of routes defined by origin and destination locations by using a sync request. For every given origin, the service calculates the cost of routing from that origin to every given destination. The set of origins and the set of destinations can be thought of as the column and row headers of a table and each cell in the table contains the costs of routing from the origin to the destination for that cell. Route Matrices can be calculated for driving, walking and truck routes. For example, a food delivery company has 20 drivers and they need to find the closest driver to pick up the delivery from the restaurant. To solve this use case, they can call the Route Matrix API and use the travel cost to sort the drivers by their actual travel distance or time from the restaurant.\n\n\nRoute Matrices are used in several different types of applications, most commonly to solve the Traveling Salesman Problem (TSP) and Vehicle Routing Problem (VRP). For each origin-destination pair in the matrix, the travel time and distance are returned. You can use the computed costs to determine which detailed routes to calculate using the Route Directions API.\n\n\nThe maximum size of a matrix for sync request it's **2500** (the number of origins multiplied by the number of destinations).\n\n\n\n### Submit Synchronous Route Matrix Request\nIf your scenario requires synchronous requests and the maximum size of the matrix is less than or equal to 2500, you might want to make synchronous request. The maximum size of a matrix for this API is **2500** (the number of origins multiplied by the number of destinations). With that constraint in mind, examples of possible matrix dimensions are: 50x50, 60x40, 90x20 (it does not need to be square).\n\n\n\n### API Limitations\n The synchronous processing of matrix is best suited for fast, small matrices of route calculation. To calculate larger matrices and heavy route calculation, use the asynchronous endpoint. The following limitation is applicable to the synchronous requests. If none of the rows in the following table match the request's parameters, the request does not meet the requirements and will not be processed.\n\n| Max matrix size | Max number of origins | Max number of destinations | Additional limits\n |------------------|------------------------|----------------------------|------------|\n| 100 | 100 | 100 | N/A |\n| 200 | 200 | 200 | All origins and destinations should be contained in an axis-aligned 400 km x 400 km bounding box. Otherwise, some matrix cells will be resolved as OUT_OF_REGION. |\n| 2500 | 1000 | 1000 | - `departAt` or `arriveAt` must be any.
- `traffic` must be historical.
- `travelMode` must be either driving or truck
- No other parameters can be used explicitly |\n\n\nExamples:\n - Request of 10x20 matrix with `traffic=live`: This request will be processed with a bounding box limit, as it matches a limit of up to 200, which includes bounding box restrictions.\n\n - Request of 10x20 matrix with default parameters (`traffic=historical`): This request will be processed without a bounding box limit, as it matches a limit of up to 2500, which does not impose bounding box restrictions.\n\n\n", "operationId": "Route_PostRouteMatrix", "consumes": [ "application/geo+json" @@ -492,7 +492,7 @@ }, "/route/matrix:async": { "post": { - "description": "**Applies to**: see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\n\nThe `Route Matrix Async` API is an HTTP `POST` request that allows calculation of a matrix of route summaries for a set of routes defined by origin and destination locations by using an asynchronous (async) request. For every given origin, the service calculates the cost of routing from that origin to every given destination. The set of origins and the set of destinations can be thought of as the column and row headers of a table and each cell in the table contains the costs of routing from the origin to the destination for that cell. Route Matrices can be calculated for driving, walking and truck routes.\n\nRoute Matrices are used in several different types of applications, most commonly to solve the Travelling Salesman Problem (TSP) and Vehicle Routing Problem (VRP). For each origin-destination pair in the matrix, the travel time and distance are returned. You can use the computed costs to determine which detailed routes to calculate using the Route Directions API.\n\n\nThe maximum size of a matrix for async request is **50000** (the number of origins multiplied by the number of destinations).\n\n\n### Submit Asynchronous Route Matrix Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex routing requests. When you make a request by using async request, by default the service returns a 202 response code along a URL in the `operation-Location` field of the response header with the Azure Maps geography endpoint `{geography}.atlas.microsoft.com. This URL should be checked periodically until the status is Succeeded. \n\n\nThe maximum size of a matrix for this API is **50000** (the number of origins multiplied by the number of destinations). With that constraint in mind, examples of possible matrix dimensions are: 500x100, 100x100, 280x170. 100x50 (it does not need to be square).\n\n\nThe asynchronous responses are stored for **24** hours. The redirect URL returns a 404 response if used after the expiration period.\n\n\n\n\n```\nPOST https://atlas.microsoft.com/route/matrix:async?api-version=2024-07-01-preview&subscription-key={subscription-key}\n```\n\nHere's a typical sequence of asynchronous operations:\n1. Client sends a Route Matrix POST request to Azure Maps\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Route Matrix request has been accepted.\n\n > HTTP `Error` - There was an error processing your Route Matrix request. This could either be a 400 Bad Request or any other Error status code.\n\n\n3. If the Matrix Route request was accepted successfully, the `operation-location` header in the response contains the URL to get the status of the request. This status URI looks like the following:\n\n ```\n GET https://atlas.microsoft.com/route/operations/{id}?api-version=2024-07-01-preview?subscription-key={subscription-key}\n ```\n\n\n4. Client issues a GET request on the resultUrl obtained in Step 3 to get the results\n\n \n\n ```\n GET https://atlas.microsoft.com/route/operations/{id}/result?api-version=2024-07-01-preview?subscription-key={subscription-key}\n ```\n\n\n\n ### API Limitations\n The asynchronous processing of matrix is best suited for larger matrices that require heavy route calculation. The following limitation is applicable to the asynchronous requests. If none of the rows in the following table match the request's parameters, the request does not meet the requirements and will not be processed.\n\n > Async requests supports up to 50K matrix size in a single request. If you want to request an increase to this limit, you can create an Azure Maps Technical Support Request in the Azure portal.\n\n \n| Max matrix size  | Max number of origins | Max number of destinations  | Additional limits |\n|------------------|-----------------------|-----------------------------|-------------------|\n| 2500  | 1000  | 1000  | All origins and destinations should be contained in an axis-aligned 400 km x 400 km bounding box. Otherwise some matrix cells will be resolved as OUT_OF_REGION.  |\n| 50,000  | 10,000  | 10,000  | - `departAt` or `arriveAt` must be any.
- `traffic` must be historical.
- `optimizeRoute` must be fastest.
- `travelMode` must be either driving or truck. 
- No other parameters can be used explicitly.  |\n\n\n", + "description": "**Applies to**: see pricing [tiers](https://aka.ms/AzureMapsPricingTier).\n\n\nThe `Route Matrix Async` API is an HTTP `POST` request that allows calculation of a matrix of route summaries for a set of routes defined by origin and destination locations by using an asynchronous (async) request. For every given origin, the service calculates the cost of routing from that origin to every given destination. The set of origins and the set of destinations can be thought of as the column and row headers of a table and each cell in the table contains the costs of routing from the origin to the destination for that cell. Route Matrices can be calculated for driving, walking and truck routes.\n\nRoute Matrices are used in several different types of applications, most commonly to solve the Traveling Salesman Problem (TSP) and Vehicle Routing Problem (VRP). For each origin-destination pair in the matrix, the travel time and distance are returned. You can use the computed costs to determine which detailed routes to calculate using the Route Directions API.\n\n\nThe maximum size of a matrix for async request is **50000** (the number of origins multiplied by the number of destinations).\n\n\n### Submit Asynchronous Route Matrix Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex routing requests. When you make a request by using async request, by default the service returns a 202 response code along a URL in the `operation-Location` field of the response header with the Azure Maps geography endpoint `{geography}.atlas.microsoft.com. This URL should be checked periodically until the status is Succeeded. \n\n\nThe maximum size of a matrix for this API is **50000** (the number of origins multiplied by the number of destinations). With that constraint in mind, examples of possible matrix dimensions are: 500x100, 100x100, 280x170. 100x50 (it does not need to be square).\n\n\nThe asynchronous responses are stored for **24** hours. The redirect URL returns a 404 response if used after the expiration period.\n\n\n\n\n```\nPOST https://atlas.microsoft.com/route/matrix:async?api-version=2024-07-01-preview&subscription-key={subscription-key}\n```\n\nHere's a typical sequence of asynchronous operations:\n1. Client sends a Route Matrix POST request to Azure Maps\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Route Matrix request has been accepted.\n\n > HTTP `Error` - There was an error processing your Route Matrix request. This could either be a 400 Bad Request or any other Error status code.\n\n\n3. If the Matrix Route request was accepted successfully, the `operation-location` header in the response contains the URL to get the status of the request. This status URI looks like the following:\n\n ```\n GET https://atlas.microsoft.com/route/operations/{id}?api-version=2024-07-01-preview?subscription-key={subscription-key}\n ```\n\n\n4. Client issues a GET request on the resultUrl obtained in Step 3 to get the results\n\n \n\n ```\n GET https://atlas.microsoft.com/route/operations/{id}/result?api-version=2024-07-01-preview?subscription-key={subscription-key}\n ```\n\n\n\n ### API Limitations\n The asynchronous processing of matrix is best suited for larger matrices that require heavy route calculation. The following limitation is applicable to the asynchronous requests. If none of the rows in the following table match the request's parameters, the request does not meet the requirements and will not be processed.\n\n > Async requests supports up to 50K matrix size in a single request. If you want to request an increase to this limit, you can create an Azure Maps Technical Support Request in the Azure portal.\n\n \n| Max matrix size  | Max number of origins | Max number of destinations  | Additional limits |\n|------------------|-----------------------|-----------------------------|-------------------|\n| 2500  | 1000  | 1000  | All origins and destinations should be contained in an axis-aligned 400 km x 400 km bounding box. Otherwise some matrix cells will be resolved as OUT_OF_REGION.  |\n| 50,000  | 10,000  | 10,000  | - `departAt` or `arriveAt` must be any.
- `traffic` must be historical.
- `optimizeRoute` must be fastest.
- `travelMode` must be either driving or truck. 
- No other parameters can be used explicitly.  |\n\n\n", "operationId": "Route_PostRouteMatrixAsync", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { @@ -3085,9 +3085,9 @@ "format": "date-time" }, "isSimplifiedPolygon": { - "description": "Use this to specify if you need simplified polygons that reduces the number of polygon vertices while preserving the shape. The API returns high definition polygon by default.", + "description": "Use this to specify if you need simplified polygons that reduces the number of polygon vertices while preserving the shape. The API returns low definition polygon by default.", "type": "boolean", - "default": "false" + "default": "true" }, "optimizeRoute": { "description": "Specifies the parameter to use to optimize the route. If not defined, the default is \"fastestWithoutTraffic\" which returns the route to minimize the travel time without using current traffic information.\n\nExample: \"optimizeRoute\":\"shortest\"", @@ -3127,16 +3127,16 @@ "$ref": "#/definitions/RouteRangeVehicleSpec" }, "distanceBudgetInMeters ": { - "description": "The distance budget specifies the maximum range in meters which can be travelled from the origin waypoint. It cannot be set when `timeBudgetInSec` is specified.\n\nWhen `isSimplifiedPolygon` is false, the maximum distance supported is 360,000 meters; otherwise, it is 50,000,000 meters.\n\nExample: \"distanceBudgetInMeters\":5000", + "description": "The distance budget specifies the maximum range in meters which can be traveled from the origin waypoint. It cannot be set when `timeBudgetInSec` is specified.\n\nWhen `isSimplifiedPolygon` is false, the maximum distance supported is 360,000 meters; otherwise, it is 500,000 meters.\n\nExample: \"distanceBudgetInMeters\":5000", "type": "number", "minimum": 0, - "maximum": 50000000 + "maximum": 500000 }, "timeBudgetInSec": { - "description": "The time budget specifies the maximum time in seconds available for travel, defining how far one can go within this time constraint from the origin waypoint. It cannot be set when `distanceBudgetInMeters` is specified.\n\nWhen `isSimplifiedPolygon` is false, the maximum time supported is 14,400 seconds; otherwise, it is 10,000,000 seconds.\n\nExample: \"timeBudgetInSec\":3600", + "description": "The time budget specifies the maximum time in seconds available for travel, defining how far one can go within this time constraint from the origin waypoint. It cannot be set when `distanceBudgetInMeters` is specified.\n\nWhen `isSimplifiedPolygon` is false, the maximum time supported is 14,400 seconds; otherwise, it is 21,600 seconds.\n\nExample: \"timeBudgetInSec\":3600", "type": "number", "minimum": 0, - "maximum": 10000000 + "maximum": 21600 }, "travelMode": { "description": "Specifies the travel profile to consider when calculating the range polygon. If not specified, the default value is \"driving\".\n\nExample: \"travelMode\":\"driving\"", From b6075dbc2321933382ea91c787ee62c6bdb87e5d Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Fri, 10 Jan 2025 11:33:54 +0800 Subject: [PATCH 10/82] java, OpenAI.Inference, migrate to clientNamespace (#31643) --- .../cognitiveservices/OpenAI.Inference/client.tsp | 15 +++++++++++++++ .../OpenAI.Inference/tspconfig.yaml | 3 --- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/specification/cognitiveservices/OpenAI.Inference/client.tsp b/specification/cognitiveservices/OpenAI.Inference/client.tsp index 343b7ff09090..58452ae12aca 100644 --- a/specification/cognitiveservices/OpenAI.Inference/client.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/client.tsp @@ -11,6 +11,21 @@ using Azure.ClientGenerator.Core; ) namespace Client; +@@clientNamespace(Client, "com.azure.ai.openai", "java"); +@@clientNamespace(Azure.OpenAI, "com.azure.ai.openai", "java"); +@@clientNamespace(Azure.OpenAI.FunctionCallPreset, + "com.azure.ai.openai.implementation", + "java" +); +@@clientNamespace(Azure.OpenAI.FileListResponse, + "com.azure.ai.openai.implementation", + "java" +); +@@clientNamespace(Azure.OpenAI.OpenAIPageableListOf, + "com.azure.ai.openai.implementation", + "java" +); + #suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" @client({ name: "OpenAIClient", diff --git a/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml b/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml index ae42df79cf2c..4073cdf77720 100644 --- a/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml +++ b/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml @@ -24,13 +24,10 @@ options: flavor: azure "@azure-tools/typespec-java": package-dir: "azure-ai-openai" - namespace: "com.azure.ai.openai" partial-update: true enable-sync-stack: true generate-tests: false generate-samples: false - custom-types-subpackage: "implementation.models" - custom-types: "FunctionCallPreset,FileListResponse,OpenAIPageableListOfBatch" customization-class: customization/src/main/java/OpenAICustomizations.java flavor: azure "@azure-tools/typespec-ts": From f6fabb4294050e991f70aff1cd0392b3b512af8f Mon Sep 17 00:00:00 2001 From: David Watrous <509299+dpwatrous@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:00:07 -0500 Subject: [PATCH 11/82] [Batch] Normalize mgmt plane doc links (#32069) Fixed some broken links, and normalized all doc URLs to learn.microsoft.com without the en-us locale. --- .../stable/2024-07-01/BatchManagement.json | 20 +++++++++---------- ...tOutboundNetworkDependenciesEndpoints.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json index 35f58a2144c5..7b22df58744f 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json @@ -2486,7 +2486,7 @@ "BatchAccount" ], "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", - "description": "Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network.", + "description": "Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://learn.microsoft.com/azure/batch/batch-virtual-network.", "x-ms-examples": { "ListOutboundNetworkDependencies": { "$ref": "./examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json" @@ -4093,7 +4093,7 @@ "vmSize": { "type": "string", "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.", - "description": "For information about available VM sizes, see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." + "description": "For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." }, "deploymentConfiguration": { "$ref": "#/definitions/DeploymentConfiguration", @@ -4322,7 +4322,7 @@ "type": "string", "title": "A formula for the desired number of compute nodes in the pool.", "externalDocs": { - "url": "https://docs.microsoft.com/en-us/azure/batch/batch-automatic-scaling", + "url": "https://learn.microsoft.com/azure/batch/batch-automatic-scaling", "description": "Create an automatic scaling formula for scaling compute nodes in a Batch pool" } }, @@ -4933,7 +4933,7 @@ "id": { "type": "string", "title": "The ARM resource identifier of the Azure Compute Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}.", - "description": "This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration." + "description": "This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration." }, "sharedGalleryImageId": { "type": "string", @@ -5476,7 +5476,7 @@ "DiffDiskPlacement": { "type": "string", "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", - "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", "enum": [ "CacheDisk" ], @@ -5498,7 +5498,7 @@ "placement": { "$ref": "#/definitions/DiffDiskPlacement", "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", - "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." } }, "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." @@ -5582,10 +5582,10 @@ "subnetId": { "type": "string", "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.", - "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", + "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", "externalDocs": { - "url": "https://azure.microsoft.com/en-us/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor", - "description": "Setting up RBAC for Azure Batch VNets" + "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network", + "description": "Create an Azure Batch pool in a virtual network" } }, "dynamicVnetAssignmentScope": { @@ -6500,7 +6500,7 @@ }, "enableAutomaticOSUpgrade": { "type": "boolean", - "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available.

If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true." + "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available.

If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true." }, "useRollingUpgradePolicy": { "type": "boolean", diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json index 55113a8feeb3..624654cad57a 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json @@ -78,7 +78,7 @@ "endpoints": [ { "domainName": "packages.microsoft.com", - "description": "Only applicable to pools containing a Mount Configuration. Learn about Mount Configurations in Batch at https://docs.microsoft.com/azure/batch/virtual-file-mount.", + "description": "Only applicable to pools containing a Mount Configuration. Learn about Mount Configurations in Batch at https://learn.microsoft.com/azure/batch/virtual-file-mount.", "endpointDetails": [ { "port": 443 @@ -92,7 +92,7 @@ "endpoints": [ { "domainName": "*.vault.azure.net", - "description": "Only applicable to pools containing a Disk Encryption Configuration and whose VM size does not support encryption at host. Learn more about disk encryption in Azure Batch at https://docs.microsoft.com/azure/batch/disk-encryption. Learn more about encryption at host and supported VM sizes at https://docs.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal.", + "description": "Only applicable to pools containing a Disk Encryption Configuration and whose VM size does not support encryption at host. Learn more about disk encryption in Azure Batch at https://learn.microsoft.com/azure/batch/disk-encryption. Learn more about encryption at host and supported VM sizes at https://learn.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal.", "endpointDetails": [ { "port": 443 From 2f12237d41f3d8d8de7302e5cd8d6aa056337baa Mon Sep 17 00:00:00 2001 From: David Watrous <509299+dpwatrous@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:02:08 -0500 Subject: [PATCH 12/82] [Batch] Normalize data plane doc links (#32070) Fixed some broken links, and normalized all doc URLs to learn.microsoft.com without the en-us locale. --- cSpell.json | 13 ++-- specification/batch/Azure.Batch/models.tsp | 10 +-- .../preview/2024-07-01.20.0/BatchService.json | 10 +-- .../stable/2024-07-01.20.0/BatchService.json | 78 +++++++++---------- 4 files changed, 56 insertions(+), 55 deletions(-) diff --git a/cSpell.json b/cSpell.json index a0c5f6930561..a0676d453d21 100644 --- a/cSpell.json +++ b/cSpell.json @@ -65,12 +65,6 @@ "PBIRS" ] }, - { - "filename": "**/specification/batch/**/*.json", - "words": [ - "TVMs" - ] - }, { "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2018-01-01/databox.json", "words": [ @@ -1340,6 +1334,13 @@ "TVMs" ] }, + { + "filename": "**/specification/batch/Azure.Batch/**/*.tsp", + "words": [ + "upgradingos", + "TVMs" + ] + }, { "filename": "**/specification/batch/data-plane/Azure.Batch/**/*.json", "words": [ diff --git a/specification/batch/Azure.Batch/models.tsp b/specification/batch/Azure.Batch/models.tsp index 351b00907cbe..8de27c9f838d 100644 --- a/specification/batch/Azure.Batch/models.tsp +++ b/specification/batch/Azure.Batch/models.tsp @@ -2800,7 +2800,7 @@ model BatchPool { @visibility("read") allocationStateTransitionTime?: utcDateTime; - @doc("The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).") + @doc("The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).") @visibility("read") vmSize?: string; @@ -2914,7 +2914,7 @@ model BatchPoolCreateContent { @doc("The display name for the Pool. The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.") displayName?: string; - @doc("The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes for Pools using Images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration), see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).") + @doc("The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes for Pools using Images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration), see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).") vmSize: string; @doc("The virtual machine configuration for the Pool. This property must be specified.") @@ -2935,7 +2935,7 @@ model BatchPoolCreateContent { @doc("Whether the Pool size should automatically adjust over time. If false, at least one of targetDedicatedNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the Pool automatically resizes according to the formula. The default value is false.") enableAutoScale?: boolean; - @doc("A formula for the desired number of Compute Nodes in the Pool. This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/).") + @doc("A formula for the desired number of Compute Nodes in the Pool. This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://learn.microsoft.com/azure/batch/batch-automatic-scaling).") autoScaleFormula?: string; @doc("The time interval at which to automatically adjust the Pool size according to the autoscale formula. The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).") @@ -3121,7 +3121,7 @@ model BatchPoolEnableAutoScaleContent { @doc("Parameters for evaluating an automatic scaling formula on an Azure Batch Pool.") model BatchPoolEvaluateAutoScaleContent { - @doc("The formula for the desired number of Compute Nodes in the Pool. The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling).") + @doc("The formula for the desired number of Compute Nodes in the Pool. The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-automatic-scaling).") autoScaleFormula: string; } @@ -3291,7 +3291,7 @@ model BatchTaskCreateContent { @doc("How the Batch service should respond when the Task completes.") exitConditions?: ExitConditions; - @doc("The command line of the Task. For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).") + @doc("The command line of the Task. For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).") commandLine: string; @doc("The settings for the container under which the Task runs. If the Pool that will run this Task has containerConfiguration set, this must be set as well. If the Pool that will run this Task doesn't have containerConfiguration set, this must not be set. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files.") diff --git a/specification/batch/data-plane/Azure.Batch/preview/2024-07-01.20.0/BatchService.json b/specification/batch/data-plane/Azure.Batch/preview/2024-07-01.20.0/BatchService.json index d902ee9ac80a..9675a69a5fd5 100644 --- a/specification/batch/data-plane/Azure.Batch/preview/2024-07-01.20.0/BatchService.json +++ b/specification/batch/data-plane/Azure.Batch/preview/2024-07-01.20.0/BatchService.json @@ -12202,7 +12202,7 @@ }, "vmSize": { "type": "string", - "description": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).", + "description": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).", "readOnly": true }, "virtualMachineConfiguration": { @@ -12378,7 +12378,7 @@ }, "vmSize": { "type": "string", - "description": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes for Pools using Images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration), see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." + "description": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes for Pools using Images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration), see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." }, "virtualMachineConfiguration": { "$ref": "#/definitions/VirtualMachineConfiguration", @@ -12412,7 +12412,7 @@ }, "autoScaleFormula": { "type": "string", - "description": "A formula for the desired number of Compute Nodes in the Pool. This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/)." + "description": "A formula for the desired number of Compute Nodes in the Pool. This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://learn.microsoft.com/azure/batch/batch-automatic-scaling)." }, "autoScaleEvaluationInterval": { "type": "string", @@ -12540,7 +12540,7 @@ "properties": { "autoScaleFormula": { "type": "string", - "description": "The formula for the desired number of Compute Nodes in the Pool. The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling)." + "description": "The formula for the desired number of Compute Nodes in the Pool. The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-automatic-scaling)." } }, "required": [ @@ -14006,7 +14006,7 @@ }, "commandLine": { "type": "string", - "description": "The command line of the Task. For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables)." + "description": "The command line of the Task. For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/BatchTaskContainerSettings", diff --git a/specification/batch/data-plane/Microsoft.Batch/stable/2024-07-01.20.0/BatchService.json b/specification/batch/data-plane/Microsoft.Batch/stable/2024-07-01.20.0/BatchService.json index b02f4738272e..ab12d354b873 100644 --- a/specification/batch/data-plane/Microsoft.Batch/stable/2024-07-01.20.0/BatchService.json +++ b/specification/batch/data-plane/Microsoft.Batch/stable/2024-07-01.20.0/BatchService.json @@ -326,7 +326,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -455,7 +455,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-support-images.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-support-images.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -583,7 +583,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -816,7 +816,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-certificates.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-certificates.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -2252,7 +2252,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-task-files.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-task-files.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -2402,7 +2402,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -3897,7 +3897,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-job-schedules.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-job-schedules.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -5278,7 +5278,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-jobs.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-jobs.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -5434,7 +5434,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -5591,7 +5591,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -5967,7 +5967,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-pools.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-pools.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -7871,7 +7871,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-tasks.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-tasks.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -10531,7 +10531,7 @@ "in": "query", "required": false, "type": "string", - "description": "An OData $filter clause. For more information on constructing this filter, see https://docs.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool.", + "description": "An OData $filter clause. For more information on constructing this filter, see https://learn.microsoft.com/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool.", "x-ms-parameter-grouping": { "postfix": "Options" } @@ -10945,7 +10945,7 @@ "vmSize": { "type": "string", "title": "The size of virtual machines in the Pool. All VMs in a Pool are the same size.", - "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)." + "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes)." }, "totalCoreHours": { "type": "number", @@ -11664,10 +11664,10 @@ "subnetId": { "type": "string", "title": "The ARM resource identifier of the virtual network subnet which Compute Nodes running Tasks from the Job will join for the duration of the Task.", - "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes which will run Tasks from the Job. This can be up to the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet so that Azure Batch service can schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication from the Azure Batch service. For Pools created with a Virtual Machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Port 443 is also required to be open for outbound connections for communications to Azure Storage. For more details see: https://docs.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", + "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes which will run Tasks from the Job. This can be up to the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet so that Azure Batch service can schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication from the Azure Batch service. For Pools created with a Virtual Machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. Port 443 is also required to be open for outbound connections for communications to Azure Storage. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", "externalDocs": { - "url": "https://azure.microsoft.com/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor", - "description": "Setting up RBAC for Azure Batch VNETs" + "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network", + "description": "Create an Azure Batch pool in a virtual network" } }, "skipWithdrawFromVNet": { @@ -12121,7 +12121,7 @@ "commandLine": { "type": "string", "title": "The command line of the Job Manager Task.", - "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -12213,7 +12213,7 @@ "commandLine": { "type": "string", "title": "The command line of the Job Preparation Task.", - "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -12272,7 +12272,7 @@ "commandLine": { "type": "string", "title": "The command line of the Job Release Task.", - "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -12355,7 +12355,7 @@ "commandLine": { "type": "string", "title": "The command line of the StartTask.", - "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -12513,7 +12513,7 @@ "vmSize": { "type": "string", "title": "The size of the virtual machines in the Pool. All virtual machines in a Pool are the same size.", - "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)." + "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes)." }, "virtualMachineConfiguration": { "$ref": "#/definitions/VirtualMachineConfiguration", @@ -13805,7 +13805,7 @@ "virtualMachineImageId": { "type": "string", "title": "The ARM resource identifier of the Azure Compute Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{VersionId} or /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName} for always defaulting to the latest image version.", - "description": "This property is mutually exclusive with other ImageReference properties. The Azure Compute Gallery Image must have replicas in the same region and must be in the same subscription as the Azure Batch account. If the image version is not specified in the imageId, the latest version will be used. For information about the firewall settings for the Batch Compute Node agent to communicate with the Batch service see https://docs.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration." + "description": "This property is mutually exclusive with other ImageReference properties. The Azure Compute Gallery Image must have replicas in the same region and must be in the same subscription as the Azure Batch account. If the image version is not specified in the imageId, the latest version will be used. For information about the firewall settings for the Batch Compute Node agent to communicate with the Batch service see https://learn.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration." }, "exactVersion": { "type": "string", @@ -14021,7 +14021,7 @@ "$ref": "#/definitions/DataDisk" }, "title": "The configuration for data disks attached to the Compute Nodes in the Pool.", - "description": "This property must be specified if the Compute Nodes in the Pool need to have empty data disks attached to them. This cannot be updated. Each Compute Node gets its own disk (the disk is not a file share). Existing disks cannot be attached, each attached disk is empty. When the Compute Node is removed from the Pool, the disk and all data associated with it is also deleted. The disk is not formatted after being attached, it must be formatted before use - for more information see https://docs.microsoft.com/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux and https://docs.microsoft.com/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine." + "description": "This property must be specified if the Compute Nodes in the Pool need to have empty data disks attached to them. This cannot be updated. Each Compute Node gets its own disk (the disk is not a file share). Existing disks cannot be attached, each attached disk is empty. When the Compute Node is removed from the Pool, the disk and all data associated with it is also deleted. The disk is not formatted after being attached, it must be formatted before use - for more information see https://learn.microsoft.com/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux and https://learn.microsoft.com/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine." }, "licenseType": { "type": "string", @@ -14375,7 +14375,7 @@ "DiffDiskPlacement": { "type": "string", "title": "Specifies the ephemeral disk placement for operating system disk for all compute nodes (VMs) in the pool.", - "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", "enum": [ "CacheDisk" ], @@ -14397,7 +14397,7 @@ "placement": { "$ref": "#/definitions/DiffDiskPlacement", "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", - "description": "This property can be used by user in the request to choose the location e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." + "description": "This property can be used by user in the request to choose the location e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." } }, "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the compute node (VM)." @@ -14484,10 +14484,10 @@ "subnetId": { "type": "string", "title": "The ARM resource identifier of the virtual network subnet which the Compute Nodes of the Pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.", - "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes in the Pool. If the subnet doesn't have enough free IP addresses, the Pool will partially allocate Nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. Only ARM virtual networks ('Microsoft.Network/virtualNetworks') are supported. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication, including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration", + "description": "The virtual network must be in the same region and subscription as the Azure Batch Account. The specified subnet should have enough free IP addresses to accommodate the number of Compute Nodes in the Pool. If the subnet doesn't have enough free IP addresses, the Pool will partially allocate Nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule Tasks on the Nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the Nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the Compute Nodes to unusable. Only ARM virtual networks ('Microsoft.Network/virtualNetworks') are supported. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication, including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/nodes-and-pools#virtual-network-vnet-and-firewall-configuration", "externalDocs": { - "url": "https://azure.microsoft.com/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor", - "description": "Setting up RBAC for Azure Batch VNETs" + "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network", + "description": "Create an Azure Batch pool in a virtual network" } }, "dynamicVNetAssignmentScope": { @@ -14654,7 +14654,7 @@ "vmSize": { "type": "string", "title": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size.", - "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)." + "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes)." }, "virtualMachineConfiguration": { "$ref": "#/definitions/VirtualMachineConfiguration", @@ -14832,7 +14832,7 @@ "vmSize": { "type": "string", "title": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size.", - "description": "For information about available VM sizes, see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." + "description": "For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." }, "virtualMachineConfiguration": { "$ref": "#/definitions/VirtualMachineConfiguration", @@ -14865,7 +14865,7 @@ "autoScaleFormula": { "type": "string", "title": "A formula for the desired number of Compute Nodes in the Pool.", - "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/)." + "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the Pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://learn.microsoft.com/azure/batch/batch-automatic-scaling)." }, "autoScaleEvaluationInterval": { "type": "string", @@ -15333,7 +15333,7 @@ "commandLine": { "type": "string", "title": "The command line of the Task.", - "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -15436,7 +15436,7 @@ "commandLine": { "type": "string", "title": "The command line of the Task.", - "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/azure/batch/batch-compute-node-environment-variables)." + "description": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)." }, "containerSettings": { "$ref": "#/definitions/TaskContainerSettings", @@ -16003,7 +16003,7 @@ "vmSize": { "type": "string", "title": "The size of the virtual machine hosting the Compute Node.", - "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes)." + "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes)." }, "totalTasksRun": { "type": "integer", @@ -16536,7 +16536,7 @@ "autoScaleFormula": { "type": "string", "title": "The formula for the desired number of Compute Nodes in the Pool.", - "description": "The formula is checked for validity before it is applied to the Pool. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling)." + "description": "The formula is checked for validity before it is applied to the Pool. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://learn.microsoft.com/azure/batch/batch-automatic-scaling)." }, "autoScaleEvaluationInterval": { "type": "string", @@ -16553,7 +16553,7 @@ "autoScaleFormula": { "type": "string", "title": "The formula for the desired number of Compute Nodes in the Pool.", - "description": "The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see Automatically scale Compute Nodes in an Azure Batch Pool (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling)." + "description": "The formula is validated and its results calculated, but it is not applied to the Pool. To apply the formula to the Pool, 'Enable automatic scaling on a Pool'. For more information about specifying this formula, see 'Automatically scale Compute Nodes in an Azure Batch Pool' (https://learn.microsoft.com/azure/batch/batch-automatic-scaling)." } }, "required": [ @@ -16678,7 +16678,7 @@ "vmSize": { "type": "string", "title": "The size of virtual machines in the Pool. All VMs in a Pool are the same size.", - "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes).

This field can be updated only when the pool is empty." + "description": "For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes).

This field can be updated only when the pool is empty." }, "taskSlotsPerNode": { "type": "integer", @@ -17017,7 +17017,7 @@ "$ref": "#/definitions/HttpHeader" }, "title": "A list of name-value pairs for headers to be used in uploading output files", - "description": "These headers will be specified when uploading files to Azure Storage. Official document on allowed headers when uploading blobs: https://docs.microsoft.com/rest/api/storageservices/put-blob#request-headers-all-blob-types" + "description": "These headers will be specified when uploading files to Azure Storage. Official document on allowed headers when uploading blobs: https://learn.microsoft.com/rest/api/storageservices/put-blob#request-headers-all-blob-types" } }, "required": [ From 62f75b8d312ae499a304c736b310126069ef7606 Mon Sep 17 00:00:00 2001 From: Spencer Ofwiti Date: Fri, 10 Jan 2025 19:29:03 +0300 Subject: [PATCH 13/82] Update examples and descriptions and update ApiKeyNameParameter for Nginx swagger (#32042) * Update examples and descriptions for Nginx swagger We recently merged this PR, [Nginx 2024 11 01 preview #31409](https://github.com/Azure/azure-rest-api-specs/pull/31409), but we found out some examples and description were not desired. we just want to update these and have no functional changes * Add missing periods in JSON descriptions. * Add x-ms-parameter-location to apiKeyName Add `"x-ms-parameter-location": "method"` property to `ApiKeyNameParameter` for easier AutoRest generation. --- .../preview/2024-11-01-preview/swagger.json | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json index a1fd365b6d2f..88a980dda56b 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json @@ -2051,7 +2051,7 @@ }, "DiagnosticItem": { "type": "object", - "description": "A config diagnostic object found during the analysis of an NGINX configuration that can be a warning or recommendation.", + "description": "A diagnostic is a message associated with an NGINX config. The Analyzer returns diagnostics with a level indicating the importance of the diagnostic with optional category.", "required": [ "directive", "description", @@ -2064,7 +2064,7 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier for the error" + "description": "Unique identifier for the diagnostic." }, "directive": { "type": "string", @@ -2072,11 +2072,11 @@ }, "description": { "type": "string", - "example": "Directives outside the http context are not allowed" + "example": "Some directives cannot be overridden by the user provided configuration." }, "file": { "type": "string", - "description": "the filepath of the most relevant config file", + "description": "The filepath of the most relevant config file.", "example": "nginx.conf" }, "line": { @@ -2085,11 +2085,11 @@ }, "message": { "type": "string", - "example": "You are not allowed to set the worker_processes directive" + "example": "The value will be overridden with `4000`." }, "rule": { "type": "string", - "example": "nginx-azure-load-balancer-allowed-directives" + "example": "overridden directives" }, "level": { "type": "string", @@ -2106,7 +2106,7 @@ }, "category": { "type": "string", - "description": "category of warning", + "description": "Category of warning like Best-practices, Recommendation, Security etc.", "example": "Security" } } @@ -2214,7 +2214,8 @@ "description": "The resource name of the API key", "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$", "required": true, - "type": "string" + "type": "string", + "x-ms-parameter-location": "method" } } } From dc7fc9849b622c2a0b3ce5e10746ceb4057ad759 Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu <31145988+chidozieononiwu@users.noreply.github.com> Date: Fri, 10 Jan 2025 10:18:03 -0800 Subject: [PATCH 14/82] Update Source and Target Commit for APIView TypeSpec generation (#32076) --- eng/scripts/Create-APIView.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/scripts/Create-APIView.ps1 b/eng/scripts/Create-APIView.ps1 index f219279f1892..f8bea35af231 100644 --- a/eng/scripts/Create-APIView.ps1 +++ b/eng/scripts/Create-APIView.ps1 @@ -363,8 +363,8 @@ function New-TypeSpecAPIViewTokens { [string]$APIViewArtifactsDirectoryName ) - $SourceCommitId = $(git rev-parse HEAD^) - $TargetCommitId = $(git rev-parse HEAD) + $SourceCommitId = $(git rev-parse HEAD^2) + $TargetCommitId = $(git rev-parse HEAD^1) $typeSpecProjects, $null = &"$PSScriptRoot/Get-TypeSpec-Folders.ps1" ` -IgnoreCoreFiles:$true ` From e5241805385733b35c0a32d97a16eaba37c85022 Mon Sep 17 00:00:00 2001 From: fangru2023 <138832097+fangru2023@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:44:31 -0800 Subject: [PATCH 15/82] Fix the api descrption (#31188) * decription fix. * remove \n * fix invalid armId. * fix \n * fix arm id. * Create sdk-suppressions.yaml * Update specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml * edit cSpell.json. * edit cSpell.json. --------- Co-authored-by: kazrael2119 <98569699+kazrael2119@users.noreply.github.com> --- cSpell.json | 6 ++++++ .../2024-03-01-preview/StandbyVirtualMachines_Get.json | 2 +- ...lMachines_ListByStandbyVirtualMachinePoolResource.json | 2 +- .../examples/2024-03-01/StandbyVirtualMachines_Get.json | 2 +- ...lMachines_ListByStandbyVirtualMachinePoolResource.json | 2 +- .../StandbyPool.Management/sdk-suppressions.yaml | 8 ++++++++ .../standbyVirtualMachinePoolRuntimeView.tsp | 4 ++-- .../examples/StandbyVirtualMachines_Get.json | 2 +- ...lMachines_ListByStandbyVirtualMachinePoolResource.json | 2 +- .../preview/2024-03-01-preview/standbypool.json | 4 ++-- .../2024-03-01/examples/StandbyVirtualMachines_Get.json | 2 +- ...lMachines_ListByStandbyVirtualMachinePoolResource.json | 2 +- .../stable/2024-03-01/standbypool.json | 4 ++-- 13 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml diff --git a/cSpell.json b/cSpell.json index a0676d453d21..724a935881f0 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1791,6 +1791,12 @@ "multiapiscript", "modelerfour" ] + }, + { + "filename": "**/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml", + "words": [ + "standbypool" + ] } ], "enableFiletypes": [ diff --git a/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_Get.json b/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_Get.json index 60d508f5dbc3..34de3713bc5e 100644 --- a/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_Get.json +++ b/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_Get.json @@ -12,7 +12,7 @@ "200": { "body": { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json b/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json index 554db0bccff5..86f7ec06c2e5 100644 --- a/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json +++ b/specification/standbypool/StandbyPool.Management/examples/2024-03-01-preview/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json @@ -13,7 +13,7 @@ "value": [ { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_Get.json b/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_Get.json index 88ed0b605c69..7ba7aee993d9 100644 --- a/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_Get.json +++ b/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_Get.json @@ -12,7 +12,7 @@ "200": { "body": { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json b/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json index 1134400c489e..472b0addad24 100644 --- a/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json +++ b/specification/standbypool/StandbyPool.Management/examples/2024-03-01/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json @@ -13,7 +13,7 @@ "value": [ { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml b/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml new file mode 100644 index 000000000000..fc7f1ac95221 --- /dev/null +++ b/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml @@ -0,0 +1,8 @@ +suppressions: + azure-sdk-for-js: + - package: '@azure/arm-standbypool' + breaking-changes: + - Enum KnownOrigin no longer has value System + - Enum KnownOrigin no longer has value User + - Enum KnownOrigin no longer has value UserSystem + - Enum KnownRefillPolicy no longer has value Always \ No newline at end of file diff --git a/specification/standbypool/StandbyPool.Management/standbyVirtualMachinePoolRuntimeView.tsp b/specification/standbypool/StandbyPool.Management/standbyVirtualMachinePoolRuntimeView.tsp index d103c037c626..d5c26856b206 100644 --- a/specification/standbypool/StandbyPool.Management/standbyVirtualMachinePoolRuntimeView.tsp +++ b/specification/standbypool/StandbyPool.Management/standbyVirtualMachinePoolRuntimeView.tsp @@ -37,7 +37,7 @@ model StandbyVirtualMachinePoolRuntimeViewResource @doc("Contains information about a standby pool as last known by the StandbyPool resource provider.") @added(Microsoft.StandbyPool.Versions.`2024-03-01-preview`) model StandbyVirtualMachinePoolRuntimeViewResourceProperties { - @doc("A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider.\nIf zones are not enabled on the attached VMSS, the list will contain a single entry with null zone values.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.") + @doc("A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider. If zones are not enabled on the attached VMSS, the list will contain a single entry without zone values. Note: any resources in the Running state may still be installing extensions / not fully provisioned.") @visibility("read") @extension("x-ms-identifiers", []) instanceCountSummary: VirtualMachineInstanceCountSummary[]; @@ -48,7 +48,7 @@ model StandbyVirtualMachinePoolRuntimeViewResourceProperties { } @added(Microsoft.StandbyPool.Versions.`2024-03-01-preview`) -@doc("Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.") +@doc("Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider. Note: any resources in the Running state may still be installing extensions / not fully provisioned.") model VirtualMachineInstanceCountSummary { @doc("The zone that the provided counts are in. This is null if zones are not enabled on the attached VMSS.") zone?: int64; diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_Get.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_Get.json index 60d508f5dbc3..34de3713bc5e 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_Get.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_Get.json @@ -12,7 +12,7 @@ "200": { "body": { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json index 554db0bccff5..86f7ec06c2e5 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json @@ -13,7 +13,7 @@ "value": [ { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/standbypool.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/standbypool.json index 2541265e1c57..362a6d281445 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/standbypool.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2024-03-01-preview/standbypool.json @@ -1535,7 +1535,7 @@ "properties": { "instanceCountSummary": { "type": "array", - "description": "A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider.\nIf zones are not enabled on the attached VMSS, the list will contain a single entry with null zone values.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.", + "description": "A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider. If zones are not enabled on the attached VMSS, the list will contain a single entry without zone values. Note: any resources in the Running state may still be installing extensions / not fully provisioned.", "items": { "$ref": "#/definitions/VirtualMachineInstanceCountSummary" }, @@ -1634,7 +1634,7 @@ }, "VirtualMachineInstanceCountSummary": { "type": "object", - "description": "Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.", + "description": "Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider. Note: any resources in the Running state may still be installing extensions / not fully provisioned.", "properties": { "zone": { "type": "integer", diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_Get.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_Get.json index 88ed0b605c69..7ba7aee993d9 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_Get.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_Get.json @@ -12,7 +12,7 @@ "200": { "body": { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json index 1134400c489e..472b0addad24 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/examples/StandbyVirtualMachines_ListByStandbyVirtualMachinePoolResource.json @@ -13,7 +13,7 @@ "value": [ { "properties": { - "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/provider/Microsoft.Compute/virtualMachines/virtualMachine", + "virtualMachineResourceId": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.Compute/virtualMachines/virtualMachine", "provisioningState": "Succeeded" }, "id": "/subscriptions/00000000-0000-0000-0000-000000000009/resourceGroups/rgstandbypool/providers/Microsoft.StandbyPool/standbyVirtualMachinePools/pool/standbyVirtualMachines/virtualMachine", diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/standbypool.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/standbypool.json index 298062f9bd15..33575f22baf1 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/standbypool.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/stable/2024-03-01/standbypool.json @@ -1535,7 +1535,7 @@ "properties": { "instanceCountSummary": { "type": "array", - "description": "A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider.\nIf zones are not enabled on the attached VMSS, the list will contain a single entry with null zone values.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.", + "description": "A list containing the counts of virtual machines in each possible power state for each zone if enabled, as known by the StandbyPool resource provider. If zones are not enabled on the attached VMSS, the list will contain a single entry without zone values. Note: any resources in the Running state may still be installing extensions / not fully provisioned.", "items": { "$ref": "#/definitions/VirtualMachineInstanceCountSummary" }, @@ -1634,7 +1634,7 @@ }, "VirtualMachineInstanceCountSummary": { "type": "object", - "description": "Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider.\nNote: any updates to pool resources outside of StandbyPoolRP (i.e deleting a VM through portal) are not reflected here.\nNote: any resources in the Running state may still be installing extensions / not fully provisioned.", + "description": "Contains the counts of VMs in each power state in a given zone, fault domain, as known by the StandbyPool resource provider. Note: any resources in the Running state may still be installing extensions / not fully provisioned.", "properties": { "zone": { "type": "integer", From 483f46412dc9ed30250ae749834aebb7f3adbcf6 Mon Sep 17 00:00:00 2001 From: Renyx1219 <90930682+Renyx1219@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:04:24 -0800 Subject: [PATCH 16/82] Release Microsoft.DatabaseWatcher GA Version stable/2025-01-02 (#32028) * Add stable version 2025-01-02. * Add examples for new API version. * Update readme.md * Add stable version 2025-01-02. * Add examples for new API version. * Update readme.md * Fix TypeSpec Validation Error. * Revert "Fix TypeSpec Validation Error." This reverts commit 82c73af01bc09d343234b87c7ebd5b4cd1672d1a. * Re-compile the code. * Use eastus2 as example region. * Update doc strings for consistence. * Fix SpellCheck issue. * Remove unused SqlVmTargetProperties in GA version. --------- Co-authored-by: Yixiong Ren Co-authored-by: Shubham <72555762+Shubham-9999-bot@users.noreply.github.com> --- .../DatabaseWatcher.Management/baseTarget.tsp | 2 +- ...sources_CreateOrUpdate_MaximumSet_Gen.json | 68 + ...rtRuleResources_Delete_MaximumSet_Gen.json | 15 + ...AlertRuleResources_Get_MaximumSet_Gen.json | 36 + ...Resources_ListByParent_MaximumSet_Gen.json | 40 + .../HealthValidations_Get_MaximumSet_Gen.json | 45 + ...lidations_ListByParent_MaximumSet_Gen.json | 49 + ...ations_StartValidation_MaximumSet_Gen.json | 40 + .../Operations_List_MaximumSet_Gen.json | 28 + .../Operations_List_MinimumSet_Gen.json | 12 + ...teLinkResources_Create_MaximumSet_Gen.json | 71 + ...teLinkResources_Delete_MaximumSet_Gen.json | 19 + ...ivateLinkResources_Get_MaximumSet_Gen.json | 36 + ...esources_ListByWatcher_MaximumSet_Gen.json | 40 + ...Targets_CreateOrUpdate_MaximumSet_Gen.json | 65 + .../Targets_Delete_MaximumSet_Gen.json | 15 + .../Targets_Get_MaximumSet_Gen.json | 35 + .../Targets_ListByWatcher_MaximumSet_Gen.json | 39 + ...atchers_CreateOrUpdate_MaximumSet_Gen.json | 109 + .../Watchers_Delete_MaximumSet_Gen.json | 18 + .../Watchers_Get_MaximumSet_Gen.json | 49 + ...rs_ListByResourceGroup_MaximumSet_Gen.json | 263 ++ ...ers_ListBySubscription_MaximumSet_Gen.json | 259 ++ .../Watchers_Start_MaximumSet_Gen.json | 54 + .../Watchers_Stop_MaximumSet_Gen.json | 54 + .../Watchers_Update_MaximumSet_Gen.json | 72 + .../sharedPrivateLinkResource.tsp | 2 +- .../sqlDbDatabaseTarget.tsp | 2 +- .../sqlDbElasticPoolTarget.tsp | 4 +- .../sqlMiTarget.tsp | 2 +- .../sqlVmTarget.tsp | 4 +- .../DatabaseWatcher.Management/watcher.tsp | 9 +- .../preview/2023-09-01-preview/Watcher.json | 18 +- .../preview/2024-07-19-preview/Watcher.json | 18 +- .../preview/2024-10-01-preview/Watcher.json | 18 +- .../stable/2025-01-02/Watcher.json | 2426 +++++++++++++++++ ...sources_CreateOrUpdate_MaximumSet_Gen.json | 68 + ...rtRuleResources_Delete_MaximumSet_Gen.json | 15 + ...AlertRuleResources_Get_MaximumSet_Gen.json | 36 + ...Resources_ListByParent_MaximumSet_Gen.json | 40 + .../HealthValidations_Get_MaximumSet_Gen.json | 45 + ...lidations_ListByParent_MaximumSet_Gen.json | 49 + ...ations_StartValidation_MaximumSet_Gen.json | 40 + .../Operations_List_MaximumSet_Gen.json | 28 + .../Operations_List_MinimumSet_Gen.json | 12 + ...teLinkResources_Create_MaximumSet_Gen.json | 71 + ...teLinkResources_Delete_MaximumSet_Gen.json | 19 + ...ivateLinkResources_Get_MaximumSet_Gen.json | 36 + ...esources_ListByWatcher_MaximumSet_Gen.json | 40 + ...Targets_CreateOrUpdate_MaximumSet_Gen.json | 65 + .../Targets_Delete_MaximumSet_Gen.json | 15 + .../examples/Targets_Get_MaximumSet_Gen.json | 35 + .../Targets_ListByWatcher_MaximumSet_Gen.json | 39 + ...atchers_CreateOrUpdate_MaximumSet_Gen.json | 109 + .../Watchers_Delete_MaximumSet_Gen.json | 18 + .../examples/Watchers_Get_MaximumSet_Gen.json | 49 + ...rs_ListByResourceGroup_MaximumSet_Gen.json | 263 ++ ...ers_ListBySubscription_MaximumSet_Gen.json | 259 ++ .../Watchers_Start_MaximumSet_Gen.json | 54 + .../Watchers_Stop_MaximumSet_Gen.json | 54 + .../Watchers_Update_MaximumSet_Gen.json | 72 + .../resource-manager/readme.md | 15 +- 62 files changed, 5542 insertions(+), 40 deletions(-) create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_ListByParent_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_ListByParent_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_StartValidation_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MinimumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Create_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_ListByWatcher_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListByResourceGroup_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListBySubscription_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Start_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Stop_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Update_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/Watcher.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_ListByParent_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_ListByParent_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_StartValidation_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MinimumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Create_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_ListByWatcher_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Delete_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Get_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListByResourceGroup_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListBySubscription_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Start_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Stop_MaximumSet_Gen.json create mode 100644 specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Update_MaximumSet_Gen.json diff --git a/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp index 858947f1d82d..2a48f6c83a95 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp @@ -49,7 +49,7 @@ model TargetProperties { @doc("The vault specific details required if using SQL authentication to connect to a target.") model VaultSecret { - @doc("The Azure ResourceId of the Key Vault instance storing database authentication secrets.") + @doc("The Azure resource ID of the Key Vault instance storing database authentication secrets.") akvResourceId?: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.KeyVault/vaults"; diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..79c0f15d24ab --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,68 @@ +{ + "title": "AlertRuleResources_CreateOrUpdate_MaximumSet", + "operationId": "AlertRuleResources_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert", + "resource": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Delete_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..1932545a8f2d --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Delete_MaximumSet_Gen.json @@ -0,0 +1,15 @@ +{ + "title": "AlertRuleResources_Delete_MaximumSet", + "operationId": "AlertRuleResources_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Get_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..aaa8a7476020 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "AlertRuleResources_Get_MaximumSet", + "operationId": "AlertRuleResources_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert" + }, + "responses": { + "200": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_ListByParent_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_ListByParent_MaximumSet_Gen.json new file mode 100644 index 000000000000..dcad88d76fd0 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/AlertRuleResources_ListByParent_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "AlertRuleResources_ListByParent_MaximumSet", + "operationId": "AlertRuleResources_ListByParent", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "provisioningState": "Succeeded", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_Get_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..551227c087df --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_Get_MaximumSet_Gen.json @@ -0,0 +1,45 @@ +{ + "title": "HealthValidations_Get_MaximumSet", + "operationId": "HealthValidations_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "healthValidationName": "testHealthValidation" + }, + "responses": { + "200": { + "body": { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Succeeded", + "issues": [ + { + "errorCode": "ReadDatasetError", + "errorMessage": "Invalid operation. The connection is closed.", + "additionalDetails": "There seems to be a connection issue.", + "recommendationMessage": "Please check the connection.", + "recommendationUrl": "https://aka.ms/issuerecommendation", + "relatedResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/test-setup/providers/Microsoft.Sql/servers/test-setup/databases/test-1", + "relatedResourceType": "Microsoft.Sql/servers" + } + ], + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_ListByParent_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_ListByParent_MaximumSet_Gen.json new file mode 100644 index 000000000000..03b146a5534a --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_ListByParent_MaximumSet_Gen.json @@ -0,0 +1,49 @@ +{ + "title": "HealthValidations_ListByParent_MaximumSet", + "operationId": "HealthValidations_ListByParent", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Succeeded", + "issues": [ + { + "errorCode": "ReadDatasetError", + "errorMessage": "Invalid operation. The connection is closed.", + "additionalDetails": "There seems to be a connection issue.", + "recommendationMessage": "Please check the connection.", + "recommendationUrl": "https://aka.ms/issuerecommendation", + "relatedResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/test-setup/providers/Microsoft.Sql/servers/test-setup/databases/test-1", + "relatedResourceType": "Microsoft.Sql/servers" + } + ], + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_StartValidation_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_StartValidation_MaximumSet_Gen.json new file mode 100644 index 000000000000..6d049260cc72 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/HealthValidations_StartValidation_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "HealthValidations_StartValidation_MaximumSet", + "operationId": "HealthValidations_StartValidation", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "healthValidationName": "testHealthValidation" + }, + "responses": { + "200": { + "body": { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Running", + "issues": [], + "provisioningState": "Accepted" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..eb1e08363a20 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List_MaximumSet", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-01-02" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "snzrdvltunnrz", + "isDataAction": true, + "display": { + "provider": "dtfrqzamclscchmghtxn", + "resource": "lvlhnsfnquorjuuutjxex", + "operation": "vbgvamoxqwthpbdghxzaw", + "description": "nvbtuwwjfehylzmoatd" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://microsoft.com/awfba" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MinimumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MinimumSet_Gen.json new file mode 100644 index 000000000000..9ac9a706a7bf --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Operations_List_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Operations_List_MinimumSet", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-01-02" + }, + "responses": { + "200": { + "body": {} + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Create_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Create_MaximumSet_Gen.json new file mode 100644 index 000000000000..7032977720a6 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Create_MaximumSet_Gen.json @@ -0,0 +1,71 @@ +{ + "title": "SharedPrivateLinkResources_Create_MaximumSet", + "operationId": "SharedPrivateLinkResources_Create", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed", + "resource": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..947380716fc6 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "SharedPrivateLinkResources_Delete_MaximumSet", + "operationId": "SharedPrivateLinkResources_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Get_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..bdac18915fb2 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "SharedPrivateLinkResources_Get_MaximumSet", + "operationId": "SharedPrivateLinkResources_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed" + }, + "responses": { + "200": { + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json new file mode 100644 index 000000000000..9ba73e833dd5 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "SharedPrivateLinkResources_ListByWatcher_MaximumSet", + "operationId": "SharedPrivateLinkResources_ListByWatcher", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/awfba" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..2a7013ec79b7 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,65 @@ +{ + "title": "Targets_CreateOrUpdate_MaximumSet", + "operationId": "Targets_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed", + "resource": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Delete_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..4902176817d7 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Delete_MaximumSet_Gen.json @@ -0,0 +1,15 @@ +{ + "title": "Targets_Delete_MaximumSet", + "operationId": "Targets_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Get_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..4b180d5b08dc --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_Get_MaximumSet_Gen.json @@ -0,0 +1,35 @@ +{ + "title": "Targets_Get_MaximumSet", + "operationId": "Targets_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed" + }, + "responses": { + "200": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_ListByWatcher_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_ListByWatcher_MaximumSet_Gen.json new file mode 100644 index 000000000000..9f12923dd414 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Targets_ListByWatcher_MaximumSet_Gen.json @@ -0,0 +1,39 @@ +{ + "title": "Targets_ListByWatcher_MaximumSet", + "operationId": "Targets_ListByWatcher", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..d9c77fe25c70 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,109 @@ +{ + "title": "Watchers_CreateOrUpdate_MaximumSet", + "operationId": "Watchers_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "resource": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssigned" + }, + "tags": {}, + "location": "eastus2" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Delete_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..5f6a7ce368ad --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Watchers_Delete_MaximumSet", + "operationId": "Watchers_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Get_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..6a97f9cb5f73 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Get_MaximumSet_Gen.json @@ -0,0 +1,49 @@ +{ + "title": "Watchers_Get_MaximumSet", + "operationId": "Watchers_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "myWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListByResourceGroup_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..c51fc43163f5 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,263 @@ +{ + "title": "Watchers_ListByResourceGroup_MaximumSet", + "operationId": "Watchers_ListByResourceGroup", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "location": "West US", + "tags": {}, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-4sz1jg/providers/Microsoft.DatabaseWatcher/watchers/databasemo4o4zdf", + "name": "databasemo4o4zdf", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-d77ftn/providers/Microsoft.DatabaseWatcher/watchers/databasemosn3h6l", + "name": "databasemosn3h6l", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-nyb4gm/providers/Microsoft.DatabaseWatcher/watchers/databasemoyb6iar", + "name": "databasemoyb6iar", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-llis4j/providers/Microsoft.DatabaseWatcher/watchers/databasemoi04xst", + "name": "databasemoi04xst", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-thy6zd/providers/Microsoft.DatabaseWatcher/watchers/databasemonpyl24", + "name": "databasemonpyl24", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "systemData": { + "createdBy": "ysoqerxnmxqsvhmvjojoyzotc", + "createdByType": "User", + "createdAt": "2024-07-25T18:01:18.690Z", + "lastModifiedBy": "yrilzsg", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T18:01:18.690Z" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {} + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih", + "name": "databasemo3ej9ih", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListBySubscription_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..b9c5a6edf457 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,259 @@ +{ + "title": "Watchers_ListBySubscription_MaximumSet", + "operationId": "Watchers_ListBySubscription", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "location": "West US", + "tags": {}, + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-4sz1jg/providers/Microsoft.DatabaseWatcher/watchers/databasemo4o4zdf", + "name": "databasemo4o4zdf", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-d77ftn/providers/Microsoft.DatabaseWatcher/watchers/databasemosn3h6l", + "name": "databasemosn3h6l", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-nyb4gm/providers/Microsoft.DatabaseWatcher/watchers/databasemoyb6iar", + "name": "databasemoyb6iar", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-llis4j/providers/Microsoft.DatabaseWatcher/watchers/databasemoi04xst", + "name": "databasemoi04xst", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-thy6zd/providers/Microsoft.DatabaseWatcher/watchers/databasemonpyl24", + "name": "databasemonpyl24", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "systemData": { + "createdBy": "ysoqerxnmxqsvhmvjojoyzotc", + "createdByType": "User", + "createdAt": "2024-07-25T18:01:18.690Z", + "lastModifiedBy": "yrilzsg", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T18:01:18.690Z" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {} + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih", + "name": "databasemo3ej9ih", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Start_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Start_MaximumSet_Gen.json new file mode 100644 index 000000000000..d58103544eb8 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Start_MaximumSet_Gen.json @@ -0,0 +1,54 @@ +{ + "title": "Watchers_Start_MaximumSet", + "operationId": "Watchers_Start", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Stop_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Stop_MaximumSet_Gen.json new file mode 100644 index 000000000000..1f68a5d218b4 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Stop_MaximumSet_Gen.json @@ -0,0 +1,54 @@ +{ + "title": "Watchers_Stop_MaximumSet", + "operationId": "Watchers_Stop", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "myWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Update_MaximumSet_Gen.json b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..c397bc528188 --- /dev/null +++ b/specification/databasewatcher/DatabaseWatcher.Management/examples/2025-01-02/Watchers_Update_MaximumSet_Gen.json @@ -0,0 +1,72 @@ +{ + "title": "Watchers_Update_MaximumSet", + "operationId": "Watchers_Update", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "properties": { + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/newtest" + }, + "tags": {} + } + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp index 36abe26ae347..187a93877a00 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp @@ -35,7 +35,7 @@ model SharedPrivateLinkResource @doc("The generic properties of a Shared Private Link resource.") model SharedPrivateLinkResourceProperties { - @doc("The resource id of the resource the shared private link resource is for.") + @doc("The resource ID of the resource the shared private link resource is for.") privateLinkResourceId: Azure.Core.armResourceIdentifier; @doc("The group id from the provider of resource the shared private link resource is for.") diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sqlDbDatabaseTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sqlDbDatabaseTarget.tsp index b8f64a68b780..5b406c83f944 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sqlDbDatabaseTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sqlDbDatabaseTarget.tsp @@ -16,7 +16,7 @@ model SqlDbSingleDatabaseTargetProperties extends TargetProperties { @doc("The Azure SQL DB single database target.") targetType: "SqlDb"; - @doc("The Azure ResourceId of an Azure SQL DB single database target.") + @doc("The Azure resource ID of an Azure SQL DB single database target.") sqlDbResourceId: armResourceIdentifier<[ { type: "Microsoft.Sql/servers/databases"; diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sqlDbElasticPoolTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sqlDbElasticPoolTarget.tsp index 64a2e38418d3..0d2c3db29ccc 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sqlDbElasticPoolTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sqlDbElasticPoolTarget.tsp @@ -15,14 +15,14 @@ model SqlDbElasticPoolTargetProperties extends TargetProperties { @doc("The Azure SQL DB elastic pool target.") targetType: "SqlEp"; - @doc("The Azure ResourceId of an Azure SQL DB elastic pool target.") + @doc("The Azure resource ID of an Azure SQL DB elastic pool target.") sqlEpResourceId: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.Sql/servers/elasticPools"; } ]>; - @doc("The Azure ResourceId of the anchor database used to connect to an elastic pool.") + @doc("The Azure resource ID of the anchor database used to connect to an elastic pool.") anchorDatabaseResourceId: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.Sql/servers/databases"; diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sqlMiTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sqlMiTarget.tsp index bd21e90237b4..46b8cbe25c2a 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sqlMiTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sqlMiTarget.tsp @@ -15,7 +15,7 @@ model SqlMiTargetProperties extends TargetProperties { @doc("The Azure SQL Managed Instance target.") targetType: "SqlMi"; - @doc("The Azure ResourceId of an Azure SQL Managed Instance target.") + @doc("The Azure resource ID of an Azure SQL Managed Instance target.") sqlMiResourceId: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.Sql/managedInstances"; diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sqlVmTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sqlVmTarget.tsp index 0b719dfd1d29..8df15eda3477 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sqlVmTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sqlVmTarget.tsp @@ -7,15 +7,17 @@ namespace Microsoft.DatabaseWatcher; using TypeSpec.Http; using TypeSpec.Rest; +using TypeSpec.Versioning; using Azure.ResourceManager; using OpenAPI; @doc("The properties specific to Azure SQL VM targets.") +@removed(Versions.v2025_01_02) model SqlVmTargetProperties extends TargetProperties { @doc("The Azure SQL VM target.") targetType: "SqlVm"; - @doc("The Azure ResourceId of an Azure SQL VM target.") + @doc("The Azure resource ID of an Azure SQL VM target.") sqlVmResourceId: Azure.Core.armResourceIdentifier<[ { type: "Microsoft.SqlVirtualMachine/sqlVirtualMachines"; diff --git a/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp b/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp index 3cd82183149c..16e1b4e24bd4 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp @@ -44,6 +44,12 @@ enum Versions { @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) @useDependency(Azure.Core.Versions.v1_0_Preview_2) v2024_10_01_preview: "2024-10-01-preview", + + @doc("The 2025-01-02 version.") + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v2025_01_02: "2025-01-02", } @doc("The DatabaseWatcherProviderHub resource.") model Watcher is TrackedResource { @@ -72,7 +78,6 @@ model WatcherProperties { @doc("The resource ID of a user-assigned managed identity that will be assigned to a new alert rule.") @added(Versions.v2024_07_19_preview) - @added(Versions.v2024_10_01_preview) defaultAlertRuleIdentityResourceId?: armResourceIdentifier<[ { type: "Microsoft.ManagedIdentity/userAssignedIdentities"; @@ -82,7 +87,7 @@ model WatcherProperties { @doc("The properties of a data store.") model Datastore { - @doc("The Azure ResourceId of an Azure Data Explorer cluster.") + @doc("The Azure resource ID of an Azure Data Explorer cluster.") adxClusterResourceId?: armResourceIdentifier<[ { type: "Microsoft.Kusto/clusters"; diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json index 6212e560eceb..66d17839cd17 100644 --- a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json @@ -1098,7 +1098,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1147,7 +1147,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1256,7 +1256,7 @@ "privateLinkResourceId": { "type": "string", "format": "arm-id", - "description": "The resource id of the resource the shared private link resource is for." + "description": "The resource ID of the resource the shared private link resource is for." }, "groupId": { "type": "string", @@ -1330,7 +1330,7 @@ "sqlEpResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB elastic pool target.", + "description": "The Azure resource ID of an Azure SQL DB elastic pool target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1342,7 +1342,7 @@ "anchorDatabaseResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the anchor database used to connect to an elastic pool.", + "description": "The Azure resource ID of the anchor database used to connect to an elastic pool.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1375,7 +1375,7 @@ "sqlDbResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB single database target.", + "description": "The Azure resource ID of an Azure SQL DB single database target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1407,7 +1407,7 @@ "sqlMiResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL Managed Instance target.", + "description": "The Azure resource ID of an Azure SQL Managed Instance target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1445,7 +1445,7 @@ "sqlVmResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL VM target.", + "description": "The Azure resource ID of an Azure SQL VM target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1577,7 +1577,7 @@ "akvResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the Key Vault instance storing database authentication secrets.", + "description": "The Azure resource ID of the Key Vault instance storing database authentication secrets.", "x-ms-arm-id-details": { "allowedResources": [ { diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-07-19-preview/Watcher.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-07-19-preview/Watcher.json index 863ddf9d93b9..3c42b9487b87 100644 --- a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-07-19-preview/Watcher.json +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-07-19-preview/Watcher.json @@ -1414,7 +1414,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1463,7 +1463,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1572,7 +1572,7 @@ "privateLinkResourceId": { "type": "string", "format": "arm-id", - "description": "The resource id of the resource the shared private link resource is for." + "description": "The resource ID of the resource the shared private link resource is for." }, "groupId": { "type": "string", @@ -1646,7 +1646,7 @@ "sqlEpResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB elastic pool target.", + "description": "The Azure resource ID of an Azure SQL DB elastic pool target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1658,7 +1658,7 @@ "anchorDatabaseResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the anchor database used to connect to an elastic pool.", + "description": "The Azure resource ID of the anchor database used to connect to an elastic pool.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1691,7 +1691,7 @@ "sqlDbResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB single database target.", + "description": "The Azure resource ID of an Azure SQL DB single database target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1723,7 +1723,7 @@ "sqlMiResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL Managed Instance target.", + "description": "The Azure resource ID of an Azure SQL Managed Instance target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1761,7 +1761,7 @@ "sqlVmResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL VM target.", + "description": "The Azure resource ID of an Azure SQL VM target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1893,7 +1893,7 @@ "akvResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the Key Vault instance storing database authentication secrets.", + "description": "The Azure resource ID of the Key Vault instance storing database authentication secrets.", "x-ms-arm-id-details": { "allowedResources": [ { diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-10-01-preview/Watcher.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-10-01-preview/Watcher.json index 65af761e373e..99bc50a370b8 100644 --- a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-10-01-preview/Watcher.json +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2024-10-01-preview/Watcher.json @@ -1595,7 +1595,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1644,7 +1644,7 @@ "adxClusterResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure Data Explorer cluster.", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1833,7 +1833,7 @@ "privateLinkResourceId": { "type": "string", "format": "arm-id", - "description": "The resource id of the resource the shared private link resource is for." + "description": "The resource ID of the resource the shared private link resource is for." }, "groupId": { "type": "string", @@ -1907,7 +1907,7 @@ "sqlEpResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB elastic pool target.", + "description": "The Azure resource ID of an Azure SQL DB elastic pool target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1919,7 +1919,7 @@ "anchorDatabaseResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the anchor database used to connect to an elastic pool.", + "description": "The Azure resource ID of the anchor database used to connect to an elastic pool.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1952,7 +1952,7 @@ "sqlDbResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL DB single database target.", + "description": "The Azure resource ID of an Azure SQL DB single database target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -1984,7 +1984,7 @@ "sqlMiResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL Managed Instance target.", + "description": "The Azure resource ID of an Azure SQL Managed Instance target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -2022,7 +2022,7 @@ "sqlVmResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of an Azure SQL VM target.", + "description": "The Azure resource ID of an Azure SQL VM target.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -2205,7 +2205,7 @@ "akvResourceId": { "type": "string", "format": "arm-id", - "description": "The Azure ResourceId of the Key Vault instance storing database authentication secrets.", + "description": "The Azure resource ID of the Key Vault instance storing database authentication secrets.", "x-ms-arm-id-details": { "allowedResources": [ { diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/Watcher.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/Watcher.json new file mode 100644 index 000000000000..8952e44e78b8 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/Watcher.json @@ -0,0 +1,2426 @@ +{ + "swagger": "2.0", + "info": { + "title": "Microsoft.DatabaseWatcher", + "version": "2025-01-02", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Watchers" + }, + { + "name": "AlertRuleResources" + }, + { + "name": "HealthValidations" + }, + { + "name": "Targets" + }, + { + "name": "SharedPrivateLinkResources" + } + ], + "paths": { + "/providers/Microsoft.DatabaseWatcher/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List_MaximumSet": { + "$ref": "./examples/Operations_List_MaximumSet_Gen.json" + }, + "Operations_List_MinimumSet": { + "$ref": "./examples/Operations_List_MinimumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DatabaseWatcher/watchers": { + "get": { + "operationId": "Watchers_ListBySubscription", + "tags": [ + "Watchers" + ], + "description": "List Watcher resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WatcherListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_ListBySubscription_MaximumSet": { + "$ref": "./examples/Watchers_ListBySubscription_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers": { + "get": { + "operationId": "Watchers_ListByResourceGroup", + "tags": [ + "Watchers" + ], + "description": "List Watcher resources by resource group", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WatcherListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_ListByResourceGroup_MaximumSet": { + "$ref": "./examples/Watchers_ListByResourceGroup_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}": { + "get": { + "operationId": "Watchers_Get", + "tags": [ + "Watchers" + ], + "description": "Get a Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Watcher" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_Get_MaximumSet": { + "$ref": "./examples/Watchers_Get_MaximumSet_Gen.json" + } + } + }, + "put": { + "operationId": "Watchers_CreateOrUpdate", + "tags": [ + "Watchers" + ], + "description": "Create a Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/Watcher" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Watcher' update operation succeeded", + "schema": { + "$ref": "#/definitions/Watcher" + } + }, + "201": { + "description": "Resource 'Watcher' create operation succeeded", + "schema": { + "$ref": "#/definitions/Watcher" + }, + "headers": { + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_CreateOrUpdate_MaximumSet": { + "$ref": "./examples/Watchers_CreateOrUpdate_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Watchers_Update", + "tags": [ + "Watchers" + ], + "description": "Update a Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/WatcherUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Watcher" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_Update_MaximumSet": { + "$ref": "./examples/Watchers_Update_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Watchers_Delete", + "tags": [ + "Watchers" + ], + "description": "Delete a Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_Delete_MaximumSet": { + "$ref": "./examples/Watchers_Delete_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/alertRuleResources": { + "get": { + "operationId": "AlertRuleResources_ListByParent", + "tags": [ + "AlertRuleResources" + ], + "description": "List AlertRuleResource resources by Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AlertRuleResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "AlertRuleResources_ListByParent_MaximumSet": { + "$ref": "./examples/AlertRuleResources_ListByParent_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/alertRuleResources/{alertRuleResourceName}": { + "get": { + "operationId": "AlertRuleResources_Get", + "tags": [ + "AlertRuleResources" + ], + "description": "Get a AlertRuleResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "alertRuleResourceName", + "in": "path", + "description": "The alert rule proxy resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AlertRuleResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "AlertRuleResources_Get_MaximumSet": { + "$ref": "./examples/AlertRuleResources_Get_MaximumSet_Gen.json" + } + } + }, + "put": { + "operationId": "AlertRuleResources_CreateOrUpdate", + "tags": [ + "AlertRuleResources" + ], + "description": "Create a AlertRuleResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "alertRuleResourceName", + "in": "path", + "description": "The alert rule proxy resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/AlertRuleResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'AlertRuleResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/AlertRuleResource" + } + }, + "201": { + "description": "Resource 'AlertRuleResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/AlertRuleResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "AlertRuleResources_CreateOrUpdate_MaximumSet": { + "$ref": "./examples/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json" + } + } + }, + "delete": { + "operationId": "AlertRuleResources_Delete", + "tags": [ + "AlertRuleResources" + ], + "description": "Delete a AlertRuleResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "alertRuleResourceName", + "in": "path", + "description": "The alert rule proxy resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "AlertRuleResources_Delete_MaximumSet": { + "$ref": "./examples/AlertRuleResources_Delete_MaximumSet_Gen.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/healthValidations": { + "get": { + "operationId": "HealthValidations_ListByParent", + "tags": [ + "HealthValidations" + ], + "description": "List HealthValidation resources by Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/HealthValidationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "HealthValidations_ListByParent_MaximumSet": { + "$ref": "./examples/HealthValidations_ListByParent_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/healthValidations/{healthValidationName}": { + "get": { + "operationId": "HealthValidations_Get", + "tags": [ + "HealthValidations" + ], + "description": "Get a HealthValidation", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "healthValidationName", + "in": "path", + "description": "The health validation resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/HealthValidation" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "HealthValidations_Get_MaximumSet": { + "$ref": "./examples/HealthValidations_Get_MaximumSet_Gen.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/healthValidations/{healthValidationName}/startValidation": { + "post": { + "operationId": "HealthValidations_StartValidation", + "tags": [ + "HealthValidations" + ], + "description": "Starts health validation for a watcher.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "healthValidationName", + "in": "path", + "description": "The health validation resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/HealthValidation" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "HealthValidations_StartValidation_MaximumSet": { + "$ref": "./examples/HealthValidations_StartValidation_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/sharedPrivateLinkResources": { + "get": { + "operationId": "SharedPrivateLinkResources_ListByWatcher", + "tags": [ + "SharedPrivateLinkResources" + ], + "description": "List SharedPrivateLinkResource resources by Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SharedPrivateLinkResources_ListByWatcher_MaximumSet": { + "$ref": "./examples/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}": { + "get": { + "operationId": "SharedPrivateLinkResources_Get", + "tags": [ + "SharedPrivateLinkResources" + ], + "description": "Get a SharedPrivateLinkResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "sharedPrivateLinkResourceName", + "in": "path", + "description": "The Shared Private Link resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SharedPrivateLinkResources_Get_MaximumSet": { + "$ref": "./examples/SharedPrivateLinkResources_Get_MaximumSet_Gen.json" + } + } + }, + "put": { + "operationId": "SharedPrivateLinkResources_Create", + "tags": [ + "SharedPrivateLinkResources" + ], + "description": "Create a SharedPrivateLinkResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "sharedPrivateLinkResourceName", + "in": "path", + "description": "The Shared Private Link resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'SharedPrivateLinkResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + }, + "201": { + "description": "Resource 'SharedPrivateLinkResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + }, + "headers": { + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SharedPrivateLinkResources_Create_MaximumSet": { + "$ref": "./examples/SharedPrivateLinkResources_Create_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "SharedPrivateLinkResources_Delete", + "tags": [ + "SharedPrivateLinkResources" + ], + "description": "Delete a SharedPrivateLinkResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "sharedPrivateLinkResourceName", + "in": "path", + "description": "The Shared Private Link resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_.]{0,62}[a-zA-Z0-9_]{1}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SharedPrivateLinkResources_Delete_MaximumSet": { + "$ref": "./examples/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/start": { + "post": { + "operationId": "Watchers_Start", + "tags": [ + "Watchers" + ], + "description": "The action to start monitoring all targets configured for a database watcher.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Watcher" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_Start_MaximumSet": { + "$ref": "./examples/Watchers_Start_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/stop": { + "post": { + "operationId": "Watchers_Stop", + "tags": [ + "Watchers" + ], + "description": "The action to stop monitoring all targets configured for a database watcher.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Watcher" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Watchers_Stop_MaximumSet": { + "$ref": "./examples/Watchers_Stop_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/targets": { + "get": { + "operationId": "Targets_ListByWatcher", + "tags": [ + "Targets" + ], + "description": "List Target resources by Watcher", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TargetListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Targets_ListByWatcher_MaximumSet": { + "$ref": "./examples/Targets_ListByWatcher_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DatabaseWatcher/watchers/{watcherName}/targets/{targetName}": { + "get": { + "operationId": "Targets_Get", + "tags": [ + "Targets" + ], + "description": "Get a Target", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "targetName", + "in": "path", + "description": "The target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Targets_Get_MaximumSet": { + "$ref": "./examples/Targets_Get_MaximumSet_Gen.json" + } + } + }, + "put": { + "operationId": "Targets_CreateOrUpdate", + "tags": [ + "Targets" + ], + "description": "Create a Target", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "targetName", + "in": "path", + "description": "The target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/Target" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Target' update operation succeeded", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "201": { + "description": "Resource 'Target' create operation succeeded", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Targets_CreateOrUpdate_MaximumSet": { + "$ref": "./examples/Targets_CreateOrUpdate_MaximumSet_Gen.json" + } + } + }, + "delete": { + "operationId": "Targets_Delete", + "tags": [ + "Targets" + ], + "description": "Delete a Target", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "watcherName", + "in": "path", + "description": "The database watcher name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + }, + { + "name": "targetName", + "in": "path", + "description": "The target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]{1}[a-zA-Z0-9-_]{3,60}$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Targets_Delete_MaximumSet": { + "$ref": "./examples/Targets_Delete_MaximumSet_Gen.json" + } + } + } + } + }, + "definitions": { + "AlertRuleResource": { + "type": "object", + "description": "Concrete proxy resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/AlertRuleResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "AlertRuleResourceListResult": { + "type": "object", + "description": "The response of a AlertRuleResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The AlertRuleResource items on this page", + "items": { + "$ref": "#/definitions/AlertRuleResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "AlertRuleResourceProperties": { + "type": "object", + "description": "The generic properties of the alert rule proxy resource.", + "properties": { + "alertRuleResourceId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the alert rule resource.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Insights/scheduledQueryRules" + } + ] + } + }, + "createdWithProperties": { + "$ref": "#/definitions/alertRuleCreationProperties", + "description": "The properties with which the alert rule resource was created." + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "The creation time of the alert rule resource." + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the alert rule resource.", + "readOnly": true + }, + "alertRuleTemplateId": { + "type": "string", + "description": "The template ID associated with alert rule resource." + }, + "alertRuleTemplateVersion": { + "type": "string", + "description": "The alert rule template version." + } + }, + "required": [ + "alertRuleResourceId", + "createdWithProperties", + "creationTime", + "alertRuleTemplateId", + "alertRuleTemplateVersion" + ] + }, + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "DatabaseWatcherProvisioningState": { + "type": "string", + "description": "The status of the last provisioning operation performed on the resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "DatabaseWatcherProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "Datastore": { + "type": "object", + "description": "The properties of a data store.", + "properties": { + "adxClusterResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Kusto/clusters" + } + ] + } + }, + "kustoClusterDisplayName": { + "type": "string", + "description": "The Kusto cluster display name." + }, + "kustoClusterUri": { + "type": "string", + "description": "The Kusto cluster URI." + }, + "kustoDataIngestionUri": { + "type": "string", + "description": "The Kusto data ingestion URI." + }, + "kustoDatabaseName": { + "type": "string", + "description": "The name of a Kusto database." + }, + "kustoManagementUrl": { + "type": "string", + "description": "The Kusto management URL." + }, + "kustoOfferingType": { + "$ref": "#/definitions/KustoOfferingType", + "description": "The type of a Kusto offering." + } + }, + "required": [ + "kustoClusterUri", + "kustoDataIngestionUri", + "kustoDatabaseName", + "kustoManagementUrl", + "kustoOfferingType" + ] + }, + "DatastoreUpdate": { + "type": "object", + "description": "The properties of a data store.", + "properties": { + "adxClusterResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of an Azure Data Explorer cluster.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Kusto/clusters" + } + ] + } + }, + "kustoClusterDisplayName": { + "type": "string", + "description": "The Kusto cluster display name." + }, + "kustoClusterUri": { + "type": "string", + "description": "The Kusto cluster URI." + }, + "kustoDataIngestionUri": { + "type": "string", + "description": "The Kusto data ingestion URI." + }, + "kustoDatabaseName": { + "type": "string", + "description": "The name of a Kusto database." + }, + "kustoManagementUrl": { + "type": "string", + "description": "The Kusto management URL." + }, + "kustoOfferingType": { + "$ref": "#/definitions/KustoOfferingType", + "description": "The type of a Kusto offering." + } + } + }, + "HealthValidation": { + "type": "object", + "description": "Concrete proxy resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/HealthValidationProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "HealthValidationListResult": { + "type": "object", + "description": "The response of a HealthValidation list operation.", + "properties": { + "value": { + "type": "array", + "description": "The HealthValidation items on this page", + "items": { + "$ref": "#/definitions/HealthValidation" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "HealthValidationProperties": { + "type": "object", + "description": "The generic properties of the health validation resource.", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of health validation, in UTC.", + "readOnly": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of health validation, in UTC.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/validationStatus", + "description": "The current health validation status.", + "readOnly": true + }, + "issues": { + "type": "array", + "description": "The list of issues found by health validation.", + "items": { + "$ref": "#/definitions/ValidationIssue" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the health validation resource.", + "readOnly": true + } + }, + "required": [ + "startTime", + "endTime", + "status", + "issues" + ] + }, + "KustoOfferingType": { + "type": "string", + "description": "The type of Kusto offering.", + "enum": [ + "adx", + "free", + "fabric" + ], + "x-ms-enum": { + "name": "KustoOfferingType", + "modelAsString": true, + "values": [ + { + "name": "adx", + "value": "adx", + "description": "The Azure Data Explorer cluster Kusto offering." + }, + { + "name": "free", + "value": "free", + "description": "The free Azure Data Explorer cluster Kusto offering." + }, + { + "name": "fabric", + "value": "fabric", + "description": "The Fabric Real-Time Analytics Kusto offering." + } + ] + } + }, + "SharedPrivateLinkResource": { + "type": "object", + "description": "Concrete proxy resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/SharedPrivateLinkResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "SharedPrivateLinkResourceListResult": { + "type": "object", + "description": "The response of a SharedPrivateLinkResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The SharedPrivateLinkResource items on this page", + "items": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "SharedPrivateLinkResourceProperties": { + "type": "object", + "description": "The generic properties of a Shared Private Link resource.", + "properties": { + "privateLinkResourceId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the resource the shared private link resource is for." + }, + "groupId": { + "type": "string", + "description": "The group id from the provider of resource the shared private link resource is for." + }, + "requestMessage": { + "type": "string", + "description": "The request message for requesting approval of the shared private link resource." + }, + "dnsZone": { + "type": "string", + "description": "The DNS zone to be included in the DNS name of the shared private link. Value is required for Azure Data Explorer clusters and SQL managed instances. The value to use is the second segment of the host FQDN name of the resource that the shared private link resource is for." + }, + "status": { + "$ref": "#/definitions/SharedPrivateLinkResourceStatus", + "description": "Status of the shared private link resource. Can be Pending, Approved, Rejected or Disconnected.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkResourceId", + "groupId", + "requestMessage" + ] + }, + "SharedPrivateLinkResourceStatus": { + "type": "string", + "description": "Status of the shared private link resource. Can be Pending, Approved, Rejected or Disconnected.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "SharedPrivateLinkResourceStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "The shared private link connection request was not yet authorized by the resource owner." + }, + { + "name": "Approved", + "value": "Approved", + "description": "The shared private link connection request was approved by the resource owner." + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "The shared private link connection request was rejected by the resource owner." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The shared private link connection request was disconnected by the resource owner." + } + ] + } + }, + "SqlDbElasticPoolTargetProperties": { + "type": "object", + "description": "The properties specific to elastic pool in Azure SQL Database.", + "properties": { + "sqlEpResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of an Azure SQL DB elastic pool target.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Sql/servers/elasticPools" + } + ] + } + }, + "anchorDatabaseResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of the anchor database used to connect to an elastic pool.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Sql/servers/databases" + } + ] + } + }, + "readIntent": { + "type": "boolean", + "description": "Set to true to monitor a high availability replica of specified target, if any.", + "default": false + } + }, + "required": [ + "sqlEpResourceId", + "anchorDatabaseResourceId" + ], + "allOf": [ + { + "$ref": "#/definitions/TargetProperties" + } + ], + "x-ms-discriminator-value": "SqlEp" + }, + "SqlDbSingleDatabaseTargetProperties": { + "type": "object", + "description": "The properties specific to single database in Azure SQL Database.", + "properties": { + "sqlDbResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of an Azure SQL DB single database target.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Sql/servers/databases" + } + ] + } + }, + "readIntent": { + "type": "boolean", + "description": "Set to true to monitor a high availability replica of specified target, if any.", + "default": false + } + }, + "required": [ + "sqlDbResourceId" + ], + "allOf": [ + { + "$ref": "#/definitions/TargetProperties" + } + ], + "x-ms-discriminator-value": "SqlDb" + }, + "SqlMiTargetProperties": { + "type": "object", + "description": "The properties specific to Azure SQL Managed Instance targets.", + "properties": { + "sqlMiResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of an Azure SQL Managed Instance target.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Sql/managedInstances" + } + ] + } + }, + "connectionTcpPort": { + "type": "integer", + "format": "int32", + "description": "The TCP port number to optionally use in the connection string when connecting to an Azure SQL Managed Instance target.", + "default": 1433 + }, + "readIntent": { + "type": "boolean", + "description": "Set to true to monitor a high availability replica of specified target, if any.", + "default": false + } + }, + "required": [ + "sqlMiResourceId" + ], + "allOf": [ + { + "$ref": "#/definitions/TargetProperties" + } + ], + "x-ms-discriminator-value": "SqlMi" + }, + "Target": { + "type": "object", + "description": "Concrete proxy resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/TargetProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "TargetAuthenticationType": { + "type": "string", + "description": "The type of authentication to use when connecting to a target.", + "enum": [ + "Aad", + "Sql" + ], + "x-ms-enum": { + "name": "TargetAuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "Aad", + "value": "Aad", + "description": "The Azure Active Directory authentication." + }, + { + "name": "Sql", + "value": "Sql", + "description": "The SQL password authentication." + } + ] + } + }, + "TargetListResult": { + "type": "object", + "description": "The response of a Target list operation.", + "properties": { + "value": { + "type": "array", + "description": "The Target items on this page", + "items": { + "$ref": "#/definitions/Target" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "TargetProperties": { + "type": "object", + "description": "The generic properties of a target.", + "properties": { + "targetType": { + "type": "string", + "description": "Discriminator property for TargetProperties." + }, + "targetAuthenticationType": { + "$ref": "#/definitions/TargetAuthenticationType", + "description": "The type of authentication to use when connecting to a target." + }, + "targetVault": { + "$ref": "#/definitions/VaultSecret", + "description": "To use SQL authentication when connecting to targets, specify the vault where the login name and password secrets are stored." + }, + "connectionServerName": { + "type": "string", + "description": "The server name to use in the connection string when connecting to a target. Port number and instance name must be specified separately.", + "maxLength": 200 + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the resource.", + "readOnly": true + } + }, + "discriminator": "targetType", + "required": [ + "targetType", + "targetAuthenticationType", + "connectionServerName" + ] + }, + "ValidationIssue": { + "type": "object", + "description": "The model of a health validation issue.", + "properties": { + "errorCode": { + "type": "string", + "description": "The error code of the issue.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The error message of the issue.", + "readOnly": true + }, + "additionalDetails": { + "type": "string", + "description": "The additional details for the issue.", + "readOnly": true + }, + "recommendationMessage": { + "type": "string", + "description": "The recommendation for resolving the issue.", + "readOnly": true + }, + "recommendationUrl": { + "type": "string", + "format": "uri", + "description": "The URL related to resolving the issue.", + "readOnly": true + }, + "relatedResourceId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the Azure resource related to the issue.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [] + } + }, + "relatedResourceType": { + "type": "string", + "description": "The type of the Azure resource related to the issue.", + "readOnly": true + } + }, + "required": [ + "errorCode", + "errorMessage", + "recommendationMessage" + ] + }, + "VaultSecret": { + "type": "object", + "description": "The vault specific details required if using SQL authentication to connect to a target.", + "properties": { + "akvResourceId": { + "type": "string", + "format": "arm-id", + "description": "The Azure resource ID of the Key Vault instance storing database authentication secrets.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.KeyVault/vaults" + } + ] + } + }, + "akvTargetUser": { + "type": "string", + "description": "The path to the Key Vault secret storing the login name (aka user name, aka account name) for authentication to a target.", + "pattern": "^[a-zA-Z0-9-]{1,127}$" + }, + "akvTargetPassword": { + "type": "string", + "description": "The path to the Key Vault secret storing the password for authentication to a target.", + "pattern": "^[a-zA-Z0-9-]{1,127}$" + } + } + }, + "Watcher": { + "type": "object", + "description": "The DatabaseWatcherProviderHub resource.", + "properties": { + "properties": { + "$ref": "#/definitions/WatcherProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "WatcherListResult": { + "type": "object", + "description": "The response of a Watcher list operation.", + "properties": { + "value": { + "type": "array", + "description": "The Watcher items on this page", + "items": { + "$ref": "#/definitions/Watcher" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "WatcherProperties": { + "type": "object", + "description": "The RP specific properties of the resource.", + "properties": { + "datastore": { + "$ref": "#/definitions/Datastore", + "description": "The data store for collected monitoring data." + }, + "status": { + "$ref": "#/definitions/WatcherStatus", + "description": "The monitoring collection status of the watcher.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/DatabaseWatcherProvisioningState", + "description": "The provisioning state of the resource watcher.", + "readOnly": true + }, + "defaultAlertRuleIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of a user-assigned managed identity that will be assigned to a new alert rule.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + } + } + }, + "WatcherStatus": { + "type": "string", + "description": "The monitoring collection status of a watcher.", + "enum": [ + "Starting", + "Running", + "Stopping", + "Stopped", + "Deleting" + ], + "x-ms-enum": { + "name": "WatcherStatus", + "modelAsString": true, + "values": [ + { + "name": "Starting", + "value": "Starting", + "description": "Denotes the watcher is in a starting state." + }, + { + "name": "Running", + "value": "Running", + "description": "Denotes the watcher is in a running state." + }, + { + "name": "Stopping", + "value": "Stopping", + "description": "Denotes the watcher is in a stopping state." + }, + { + "name": "Stopped", + "value": "Stopped", + "description": "Denotes the watcher is in a stopped state." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Denotes the watcher is in a deleting state." + } + ] + } + }, + "WatcherUpdate": { + "type": "object", + "description": "The type used for update operations of the Watcher.", + "properties": { + "identity": { + "$ref": "../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "$ref": "#/definitions/WatcherUpdateProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + } + }, + "WatcherUpdateProperties": { + "type": "object", + "description": "The updatable properties of the Watcher.", + "properties": { + "datastore": { + "$ref": "#/definitions/DatastoreUpdate", + "description": "The data store for collected monitoring data." + }, + "defaultAlertRuleIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of a user-assigned managed identity that will be assigned to a new alert rule.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + } + } + }, + "alertRuleCreationProperties": { + "type": "string", + "description": "The properties with which the alert rule resource was created.", + "enum": [ + "CreatedWithActionGroup", + "None" + ], + "x-ms-enum": { + "name": "alertRuleCreationProperties", + "modelAsString": true, + "values": [ + { + "name": "CreatedWithActionGroup", + "value": "CreatedWithActionGroup", + "description": "The alert rule was created with an action group." + }, + { + "name": "None", + "value": "None", + "description": "The alert rule was created with no properties." + } + ] + } + }, + "validationStatus": { + "type": "string", + "description": "Health validation status.", + "enum": [ + "NotStarted", + "Running", + "Succeeded", + "Failed", + "Canceled", + "TimedOut" + ], + "x-ms-enum": { + "name": "validationStatus", + "modelAsString": true, + "values": [ + { + "name": "NotStarted", + "value": "NotStarted", + "description": "Health validation has not started." + }, + { + "name": "Running", + "value": "Running", + "description": "Health validation is running." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Health validation completed successfully." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Health validation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Health validation was canceled." + }, + { + "name": "TimedOut", + "value": "TimedOut", + "description": "Health validation timed out." + } + ] + }, + "readOnly": true + } + }, + "parameters": {} +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..79c0f15d24ab --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,68 @@ +{ + "title": "AlertRuleResources_CreateOrUpdate_MaximumSet", + "operationId": "AlertRuleResources_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert", + "resource": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Delete_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..1932545a8f2d --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Delete_MaximumSet_Gen.json @@ -0,0 +1,15 @@ +{ + "title": "AlertRuleResources_Delete_MaximumSet", + "operationId": "AlertRuleResources_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Get_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..aaa8a7476020 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "AlertRuleResources_Get_MaximumSet", + "operationId": "AlertRuleResources_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "alertRuleResourceName": "testAlert" + }, + "responses": { + "200": { + "body": { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_ListByParent_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_ListByParent_MaximumSet_Gen.json new file mode 100644 index 000000000000..dcad88d76fd0 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/AlertRuleResources_ListByParent_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "AlertRuleResources_ListByParent_MaximumSet", + "operationId": "AlertRuleResources_ListByParent", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "alertRuleResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.insights/scheduledqueryrules/alerts-demo", + "creationTime": "2024-07-25T15:38:47.798Z", + "alertRuleTemplateVersion": "1.0", + "provisioningState": "Succeeded", + "alertRuleTemplateId": "someTemplateId", + "createdWithProperties": "CreatedWithActionGroup" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/alertRuleResources/testAlert", + "name": "testAlert", + "type": "microsoft.databasewatcher/watchers/alertRuleResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_Get_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..551227c087df --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_Get_MaximumSet_Gen.json @@ -0,0 +1,45 @@ +{ + "title": "HealthValidations_Get_MaximumSet", + "operationId": "HealthValidations_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "healthValidationName": "testHealthValidation" + }, + "responses": { + "200": { + "body": { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Succeeded", + "issues": [ + { + "errorCode": "ReadDatasetError", + "errorMessage": "Invalid operation. The connection is closed.", + "additionalDetails": "There seems to be a connection issue.", + "recommendationMessage": "Please check the connection.", + "recommendationUrl": "https://aka.ms/issuerecommendation", + "relatedResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/test-setup/providers/Microsoft.Sql/servers/test-setup/databases/test-1", + "relatedResourceType": "Microsoft.Sql/servers" + } + ], + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_ListByParent_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_ListByParent_MaximumSet_Gen.json new file mode 100644 index 000000000000..03b146a5534a --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_ListByParent_MaximumSet_Gen.json @@ -0,0 +1,49 @@ +{ + "title": "HealthValidations_ListByParent_MaximumSet", + "operationId": "HealthValidations_ListByParent", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Succeeded", + "issues": [ + { + "errorCode": "ReadDatasetError", + "errorMessage": "Invalid operation. The connection is closed.", + "additionalDetails": "There seems to be a connection issue.", + "recommendationMessage": "Please check the connection.", + "recommendationUrl": "https://aka.ms/issuerecommendation", + "relatedResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/test-setup/providers/Microsoft.Sql/servers/test-setup/databases/test-1", + "relatedResourceType": "Microsoft.Sql/servers" + } + ], + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_StartValidation_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_StartValidation_MaximumSet_Gen.json new file mode 100644 index 000000000000..6d049260cc72 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/HealthValidations_StartValidation_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "HealthValidations_StartValidation_MaximumSet", + "operationId": "HealthValidations_StartValidation", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "healthValidationName": "testHealthValidation" + }, + "responses": { + "200": { + "body": { + "properties": { + "startTime": "2024-10-07T19:42:55.594Z", + "endTime": "2024-10-07T19:42:55.594Z", + "status": "Running", + "issues": [], + "provisioningState": "Accepted" + }, + "id": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878Be/resourceGroups/rgWatcher/providers/microsoft.databasewatcher/watchers/testWatcher/healthValidations/testHealthValidation", + "name": "testHealthValidation", + "type": "microsoft.databasewatcher/watchers/healthValidations", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..eb1e08363a20 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List_MaximumSet", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-01-02" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "snzrdvltunnrz", + "isDataAction": true, + "display": { + "provider": "dtfrqzamclscchmghtxn", + "resource": "lvlhnsfnquorjuuutjxex", + "operation": "vbgvamoxqwthpbdghxzaw", + "description": "nvbtuwwjfehylzmoatd" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://microsoft.com/awfba" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MinimumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MinimumSet_Gen.json new file mode 100644 index 000000000000..9ac9a706a7bf --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Operations_List_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Operations_List_MinimumSet", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-01-02" + }, + "responses": { + "200": { + "body": {} + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Create_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Create_MaximumSet_Gen.json new file mode 100644 index 000000000000..7032977720a6 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Create_MaximumSet_Gen.json @@ -0,0 +1,71 @@ +{ + "title": "SharedPrivateLinkResources_Create_MaximumSet", + "operationId": "SharedPrivateLinkResources_Create", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed", + "resource": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..947380716fc6 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Delete_MaximumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "SharedPrivateLinkResources_Delete_MaximumSet", + "operationId": "SharedPrivateLinkResources_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Get_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..bdac18915fb2 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "SharedPrivateLinkResources_Get_MaximumSet", + "operationId": "SharedPrivateLinkResources_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "sharedPrivateLinkResourceName": "monitoringh22eed" + }, + "responses": { + "200": { + "body": { + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json new file mode 100644 index 000000000000..9ba73e833dd5 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/SharedPrivateLinkResources_ListByWatcher_MaximumSet_Gen.json @@ -0,0 +1,40 @@ +{ + "title": "SharedPrivateLinkResources_ListByWatcher_MaximumSet", + "operationId": "SharedPrivateLinkResources_ListByWatcher", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih/sharedPrivateLinkResources/monitoringh22eed", + "name": "monitoringh22eed", + "type": "microsoft.databasewatcher/watchers/sharedPrivateLinkResources", + "properties": { + "privateLinkResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.KeyVault/vaults/kvmo3ej9ih", + "groupId": "vault", + "requestMessage": "request message", + "dnsZone": "ec3ae9d410ba", + "status": "Pending", + "provisioningState": "Completed" + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/awfba" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..2a7013ec79b7 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,65 @@ +{ + "title": "Targets_CreateOrUpdate_MaximumSet", + "operationId": "Targets_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed", + "resource": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Delete_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..4902176817d7 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Delete_MaximumSet_Gen.json @@ -0,0 +1,15 @@ +{ + "title": "Targets_Delete_MaximumSet", + "operationId": "Targets_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Get_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..4b180d5b08dc --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_Get_MaximumSet_Gen.json @@ -0,0 +1,35 @@ +{ + "title": "Targets_Get_MaximumSet", + "operationId": "Targets_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih", + "targetName": "monitoringh22eed" + }, + "responses": { + "200": { + "body": { + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_ListByWatcher_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_ListByWatcher_MaximumSet_Gen.json new file mode 100644 index 000000000000..9f12923dd414 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Targets_ListByWatcher_MaximumSet_Gen.json @@ -0,0 +1,39 @@ +{ + "title": "Targets_ListByWatcher_MaximumSet", + "operationId": "Targets_ListByWatcher", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "resourceGroupName": "apiTest-ddat4p", + "watcherName": "databasemo3ej9ih" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-px9ma7/providers/Microsoft.DatabaseWatcher/watchers/databasemo3d9sgt/targets/monitoringzkndgm", + "name": "monitoringzkndgm", + "type": "microsoft.databasewatcher/watchers/targets", + "properties": { + "targetType": "SqlDb", + "targetAuthenticationType": "Aad", + "connectionServerName": "sqlServero1ihe2", + "sqlDbResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.Sql/servers/m1/databases/m2", + "provisioningState": "Succeeded" + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_CreateOrUpdate_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..d9c77fe25c70 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,109 @@ +{ + "title": "Watchers_CreateOrUpdate_MaximumSet", + "operationId": "Watchers_CreateOrUpdate", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "resource": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssigned" + }, + "tags": {}, + "location": "eastus2" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Delete_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..5f6a7ce368ad --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Watchers_Delete_MaximumSet", + "operationId": "Watchers_Delete", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Get_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..6a97f9cb5f73 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Get_MaximumSet_Gen.json @@ -0,0 +1,49 @@ +{ + "title": "Watchers_Get_MaximumSet", + "operationId": "Watchers_Get", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "myWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListByResourceGroup_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..c51fc43163f5 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,263 @@ +{ + "title": "Watchers_ListByResourceGroup_MaximumSet", + "operationId": "Watchers_ListByResourceGroup", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "location": "West US", + "tags": {}, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-4sz1jg/providers/Microsoft.DatabaseWatcher/watchers/databasemo4o4zdf", + "name": "databasemo4o4zdf", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-d77ftn/providers/Microsoft.DatabaseWatcher/watchers/databasemosn3h6l", + "name": "databasemosn3h6l", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-nyb4gm/providers/Microsoft.DatabaseWatcher/watchers/databasemoyb6iar", + "name": "databasemoyb6iar", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-llis4j/providers/Microsoft.DatabaseWatcher/watchers/databasemoi04xst", + "name": "databasemoi04xst", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-thy6zd/providers/Microsoft.DatabaseWatcher/watchers/databasemonpyl24", + "name": "databasemonpyl24", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "systemData": { + "createdBy": "ysoqerxnmxqsvhmvjojoyzotc", + "createdByType": "User", + "createdAt": "2024-07-25T18:01:18.690Z", + "lastModifiedBy": "yrilzsg", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T18:01:18.690Z" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {} + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih", + "name": "databasemo3ej9ih", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListBySubscription_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..b9c5a6edf457 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,259 @@ +{ + "title": "Watchers_ListBySubscription_MaximumSet", + "operationId": "Watchers_ListBySubscription", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "location": "West US", + "tags": {}, + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-4sz1jg/providers/Microsoft.DatabaseWatcher/watchers/databasemo4o4zdf", + "name": "databasemo4o4zdf", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-d77ftn/providers/Microsoft.DatabaseWatcher/watchers/databasemosn3h6l", + "name": "databasemosn3h6l", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-nyb4gm/providers/Microsoft.DatabaseWatcher/watchers/databasemoyb6iar", + "name": "databasemoyb6iar", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-llis4j/providers/Microsoft.DatabaseWatcher/watchers/databasemoi04xst", + "name": "databasemoi04xst", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-thy6zd/providers/Microsoft.DatabaseWatcher/watchers/databasemonpyl24", + "name": "databasemonpyl24", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "systemData": { + "createdBy": "ysoqerxnmxqsvhmvjojoyzotc", + "createdByType": "User", + "createdAt": "2024-07-25T18:01:18.690Z", + "lastModifiedBy": "yrilzsg", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T18:01:18.690Z" + }, + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {} + }, + { + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest-ddat4p/providers/Microsoft.DatabaseWatcher/watchers/databasemo3ej9ih", + "name": "databasemo3ej9ih", + "type": "microsoft.databasewatcher/watchers", + "location": "westus", + "properties": { + "status": "Starting", + "provisioningState": "Succeeded", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + } + }, + "identity": { + "type": "SystemAssignedIdentity", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Start_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Start_MaximumSet_Gen.json new file mode 100644 index 000000000000..d58103544eb8 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Start_MaximumSet_Gen.json @@ -0,0 +1,54 @@ +{ + "title": "Watchers_Start_MaximumSet", + "operationId": "Watchers_Start", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Stop_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Stop_MaximumSet_Gen.json new file mode 100644 index 000000000000..1f68a5d218b4 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Stop_MaximumSet_Gen.json @@ -0,0 +1,54 @@ +{ + "title": "Watchers_Stop_MaximumSet", + "operationId": "Watchers_Stop", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "myWatcher" + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Update_MaximumSet_Gen.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..c397bc528188 --- /dev/null +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/stable/2025-01-02/examples/Watchers_Update_MaximumSet_Gen.json @@ -0,0 +1,72 @@ +{ + "title": "Watchers_Update_MaximumSet", + "operationId": "Watchers_Update", + "parameters": { + "api-version": "2025-01-02", + "subscriptionId": "A76F9850-996B-40B3-94D4-C98110A0EEC9", + "resourceGroupName": "rgWatcher", + "watcherName": "testWatcher", + "properties": { + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/newtest" + }, + "tags": {} + } + }, + "responses": { + "200": { + "body": { + "properties": { + "status": "Starting", + "defaultAlertRuleIdentityResourceId": "/subscriptions/469DD77C-C8DB-47B7-B9E1-72D29F8C878B/resourceGroups/rgWatcher/providers/Microsoft.ManagedIdentity/userAssignedIdentities/3pmtest", + "datastore": { + "adxClusterResourceId": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/apiTest/providers/Microsoft.Kusto/clusters/apiTestKusto", + "kustoClusterUri": "https://kustouri-adx.eastus.kusto.windows.net", + "kustoClusterDisplayName": "kustoUri-adx", + "kustoDataIngestionUri": "https://ingest-kustouri-adx.eastus.kusto.windows.net", + "kustoDatabaseName": "kustoDatabaseName1", + "kustoManagementUrl": "https://portal.azure.com/", + "kustoOfferingType": "adx" + }, + "provisioningState": "Succeeded" + }, + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": {}, + "principalId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d", + "tenantId": "49e0fbd3-75e8-44e7-96fd-5b64d9ad818d" + }, + "tags": {}, + "location": "eastus2", + "id": "/subscriptions/49e0fbd3-75e8-44e7-96fd-5b64d9ad818d/resourceGroups/dummyrg/providers/Microsoft.DatabaseWatcher/watchers/myWatcher", + "name": "myWatcher", + "type": "microsoft.databasewatcher/watchers", + "systemData": { + "createdBy": "enbpvlpqbwd", + "createdByType": "User", + "createdAt": "2024-07-25T15:38:47.092Z", + "lastModifiedBy": "mxp", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-25T15:38:47.092Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/databasewatcher/resource-manager/readme.md b/specification/databasewatcher/resource-manager/readme.md index e8892622fcf9..08851a9f0e5b 100644 --- a/specification/databasewatcher/resource-manager/readme.md +++ b/specification/databasewatcher/resource-manager/readme.md @@ -1,8 +1,8 @@ -# databasewatcher +# database watcher > see https://aka.ms/autorest -This is the AutoRest configuration file for databasewatcher. +This is the AutoRest configuration file for database watcher. ## Getting Started @@ -22,12 +22,19 @@ For other options on installation see [Installing AutoRest](https://aka.ms/autor ### Basic Information -These are the global settings for the databasewatcher. +These are the global settings for the database watcher. ```yaml openapi-type: arm openapi-subtype: rpaas -tag: package-2024-10-01-preview +tag: package-2025-01-02 +``` + +### Tag: package-2025-01-02 +These settings apply only when `--tag=package-2025-01-02` is specified on the command line. +```yaml $(tag) == 'package-2025-01-02' +input-file: + - Microsoft.DatabaseWatcher/stable/2025-01-02/Watcher.json ``` ### Tag: package-2024-10-01-preview From 9be3ccf5b1729cb1e5f41438fe6d7a6308aab50a Mon Sep 17 00:00:00 2001 From: Libba Lawrence Date: Fri, 10 Jan 2025 12:19:07 -0800 Subject: [PATCH 17/82] [eg] make req/optional more explicit in readme (#32079) * update * update for clarity --- .../Azure.Messaging.EventGrid.SystemEvents/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/README.md b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/README.md index fbbaa2816aba..6a18958f5fff 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/README.md +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/README.md @@ -13,15 +13,18 @@ In order to automate the mapping of event definition with event type, please fol Under the `Azure.Messaging.EventGrid.SystemEvents` folder find or create your service's `.tsp` file. This is where you will add your new event. For help with typespec conventions refer to [this doc](https://microsoft.github.io/typespec/) about typespec basics. Each new event will be represented as a typespec `model`. After you create your new event, in the `client.tsp` file, you need to add `@@usage(EventGrid.YourEventName, Usage.output)` and `@@access(EventGrid.YourEventName, Access.public)`. -A sample valid event definition is shown below: +A sample valid event definition is shown below with `required` and `optional` properties: ~~~ markdown /** Schema of the Data property of an EventGridEvent for a Microsoft.Communication.ChatMessageReceived event. */ model AcsChatMessageReceivedEventData { ...AcsChatMessageEventBaseProperties; - /** The body of the chat message. */ - messageBody : string; + /** Required. Field is always present in the event. */ + requiredProperty : string; + + /** Optional. Field may not be present in some events. */ + optionalProperty ?: string; } ~~~ From 0433add0f397d35c79bd27a2a86318dbdc7b829b Mon Sep 17 00:00:00 2001 From: MJ <71822730+mjmadhu@users.noreply.github.com> Date: Sat, 11 Jan 2025 06:54:03 +0530 Subject: [PATCH 18/82] PlaywrightTesting -Bringing common model in shared namespace (#32019) * Created PlaywrightTesting.Shared namespace * tsp format fixed --- cSpell.json | 7 + .../PlaywrightTesting.AuthManager/main.tsp | 100 +--------- .../tspconfig.yaml | 4 + .../PlaywrightTesting.Shared/main.tsp | 116 +++++++++++ .../stable/2024-12-01/playwrighttesting.json | 186 +++++++++--------- 5 files changed, 223 insertions(+), 190 deletions(-) create mode 100644 specification/playwrighttesting/PlaywrightTesting.Shared/main.tsp diff --git a/cSpell.json b/cSpell.json index 724a935881f0..d3b7119221a9 100644 --- a/cSpell.json +++ b/cSpell.json @@ -50,6 +50,13 @@ "typescript" ], "overrides": [ + { + "filename": "**/specification/playwrighttesting/**/*", + "words": [ + "microsoftplaywrighttesting", + "playwrighttesting", + ] + }, { "filename": "**/specification/azurearcdata/resource-manager/Microsoft.AzureArcData/**/*.json", "words": [ diff --git a/specification/playwrighttesting/PlaywrightTesting.AuthManager/main.tsp b/specification/playwrighttesting/PlaywrightTesting.AuthManager/main.tsp index a70813099688..7ee1e26f125f 100644 --- a/specification/playwrighttesting/PlaywrightTesting.AuthManager/main.tsp +++ b/specification/playwrighttesting/PlaywrightTesting.AuthManager/main.tsp @@ -5,12 +5,14 @@ import "@typespec/http"; import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; +import "../PlaywrightTesting.Shared"; using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; +using Microsoft.PlaywrightTesting.Shared; @server( "{endpoint}", @@ -54,97 +56,12 @@ namespace Microsoft.PlaywrightTesting.AuthManager; enum Versions { @doc("Version 2024-12-01") @useDependency(Azure.Core.Versions.v1_0_Preview_2) + @useDependency(Microsoft.PlaywrightTesting.Shared.Versions.v1_0) `2024-12-01`, } // Models //////////////////// -@doc("An account is a parent resource for most of the other service resources. It's directly mapped to an Azure resource.") -@resource("accounts") -model Account { - @key("accountId") - @doc("The account id.") - @maxLength(64) - @pattern("[A-Za-z0-9]+(_[A-Za-z0-9]+)*(-[A-Za-z0-9]+)+") - @visibility("read") - id: string; - - @doc("The fully-qualified Azure resource id for the account.") - @visibility("read") - resourceId: string; - - @doc("The account name.") - @visibility("read") - name: string; - - @doc("The state of account - Active | Inactive") - @visibility("read") - state: AccountState; - - @doc("The Azure subscription id for the account.") - @visibility("read") - subscriptionId: uuid; - - @doc("The Azure subscription state - Registered | Unregistered | Warned | Suspended | Deleted") - @visibility("read") - subscriptionState: SubscriptionState; - - @doc("The Azure tenant id of the account.") - @visibility("read") - tenantId: uuid; - - @doc("The account resource location in Azure, for eg. eastus, southeastasia.") - @visibility("read") - location: string; - - @doc("This property sets the connection region for Playwright client workers to cloud-hosted browsers. If enabled, workers connect to browsers in the closest Azure region, ensuring lower latency. If disabled, workers connect to browsers in the Azure region in which the workspace was initially created.") - @visibility("read") - regionalAffinity?: EnablementStatus = EnablementStatus.Enabled; - - @doc("When enabled, Playwright client workers can connect to cloud-hosted browsers. This can increase the number of parallel workers for a test run, significantly minimizing test completion durations.") - @visibility("read") - scalableExecution?: EnablementStatus = EnablementStatus.Enabled; - - @doc("When enabled, this feature allows the workspace to upload and display test results, including artifacts like traces and screenshots, in the Playwright portal. This enables faster and more efficient troubleshooting.") - @visibility("read") - reporting?: EnablementStatus = EnablementStatus.Enabled; - - @doc("When enabled, this feature allows the workspace to use local auth (through service access token) for executing operations.") - @visibility("read") - localAuth?: EnablementStatus = EnablementStatus.Disabled; -} - -@doc("The account state.") -union AccountState { - string, - - @doc("The account is Active.") - "Active", - - @doc("The account is Inactive.") - "Inactive", -} - -@doc("The Azure subscription state.") -union SubscriptionState { - string, - - @doc("The subscription state is Registered.") - "Registered", - - @doc("The subscription state is Warned.") - "Warned", - - @doc("The subscription state is Suspended.") - "Suspended", - - @doc("The subscription state is Deleted.") - "Deleted", - - @doc("The subscription state is Unregistered.") - "Unregistered", -} - @doc("Model of an access-token linked to an account.") @resource("access-tokens") @parentResource(Account) @@ -191,17 +108,6 @@ union AccessTokenState { Expired: "Expired", } -@doc("The enablement status of a feature.") -union EnablementStatus { - string, - - @doc("The feature is Enabled.") - Enabled: "Enabled", - - @doc("The feature is Disabled.") - Disabled: "Disabled", -} - @doc("The os to configure for remote test runs.") union OS { string, diff --git a/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml b/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml index 5b3209eec885..6873e72af011 100644 --- a/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml +++ b/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml @@ -6,6 +6,10 @@ linter: parameters: "service-dir": default: "sdk/playwrighttesting" + "dependencies": + "additionalDirectories": + - "specification/playwrighttesting/PlaywrightTesting.Shared/" + default: "" options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" diff --git a/specification/playwrighttesting/PlaywrightTesting.Shared/main.tsp b/specification/playwrighttesting/PlaywrightTesting.Shared/main.tsp new file mode 100644 index 000000000000..b45ff810de7a --- /dev/null +++ b/specification/playwrighttesting/PlaywrightTesting.Shared/main.tsp @@ -0,0 +1,116 @@ +// cheat-sheet - https://microsoft.github.io/typespec/standard-library/http/cheat-sheet +// tsp compile main.tsp --emit @azure-tools/typespec-autorest + +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; + +using TypeSpec.Versioning; +using TypeSpec.Rest; +using Azure.Core; + +@versioned(Microsoft.PlaywrightTesting.Shared.Versions) +namespace Microsoft.PlaywrightTesting.Shared; + +@doc("The PlaywrightTesting Accounts Model Version.") +enum Versions { + @doc("Version 1.0") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v1_0, +} + +@doc("An account is a parent resource for most of the other service resources. It's directly mapped to an Azure resource.") +@resource("accounts") +model Account { + @key("accountId") + @doc("The account id.") + @maxLength(64) + @pattern("[A-Za-z0-9]+(_[A-Za-z0-9]+)*(-[A-Za-z0-9]+)+") + @visibility("read") + id: string; + + @doc("The fully-qualified Azure resource id for the account.") + @visibility("read") + resourceId: string; + + @doc("The account name.") + @visibility("read") + name: string; + + @doc("The state of account - Active | Inactive") + @visibility("read") + state: AccountState; + + @doc("The Azure subscription id for the account.") + @visibility("read") + subscriptionId: uuid; + + @doc("The Azure subscription state - Registered | Unregistered | Warned | Suspended | Deleted") + @visibility("read") + subscriptionState: SubscriptionState; + + @doc("The Azure tenant id of the account.") + @visibility("read") + tenantId: uuid; + + @doc("The account resource location in Azure, for eg. eastus, southeastasia.") + @visibility("read") + location: string; + + @doc("This property sets the connection region for Playwright client workers to cloud-hosted browsers. If enabled, workers connect to browsers in the closest Azure region, ensuring lower latency. If disabled, workers connect to browsers in the Azure region in which the workspace was initially created.") + @visibility("read") + regionalAffinity?: EnablementStatus = EnablementStatus.Enabled; + + @doc("When enabled, Playwright client workers can connect to cloud-hosted browsers. This can increase the number of parallel workers for a test run, significantly minimizing test completion durations.") + @visibility("read") + scalableExecution?: EnablementStatus = EnablementStatus.Enabled; + + @doc("When enabled, this feature allows the workspace to upload and display test results, including artifacts like traces and screenshots, in the Playwright portal. This enables faster and more efficient troubleshooting.") + @visibility("read") + reporting?: EnablementStatus = EnablementStatus.Enabled; + + @doc("When enabled, this feature allows the workspace to use local auth (through service access token) for executing operations.") + @visibility("read") + localAuth?: EnablementStatus = EnablementStatus.Disabled; +} + +@doc("The account state.") +union AccountState { + string, + + @doc("The account is Active.") + "Active", + + @doc("The account is Inactive.") + "Inactive", +} + +@doc("The Azure subscription state.") +union SubscriptionState { + string, + + @doc("The subscription state is Registered.") + "Registered", + + @doc("The subscription state is Warned.") + "Warned", + + @doc("The subscription state is Suspended.") + "Suspended", + + @doc("The subscription state is Deleted.") + "Deleted", + + @doc("The subscription state is Unregistered.") + "Unregistered", +} + +@doc("The enablement status of a feature.") +union EnablementStatus { + string, + + @doc("The feature is Enabled.") + Enabled: "Enabled", + + @doc("The feature is Disabled.") + Disabled: "Disabled", +} diff --git a/specification/playwrighttesting/data-plane/Microsoft.PlaywrightTesting.AuthManager/stable/2024-12-01/playwrighttesting.json b/specification/playwrighttesting/data-plane/Microsoft.PlaywrightTesting.AuthManager/stable/2024-12-01/playwrighttesting.json index 450c73579f07..5aa973ac936e 100644 --- a/specification/playwrighttesting/data-plane/Microsoft.PlaywrightTesting.AuthManager/stable/2024-12-01/playwrighttesting.json +++ b/specification/playwrighttesting/data-plane/Microsoft.PlaywrightTesting.AuthManager/stable/2024-12-01/playwrighttesting.json @@ -76,7 +76,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Account" + "$ref": "#/definitions/Microsoft.PlaywrightTesting.Shared.Account" }, "headers": { "x-ms-client-request-id": { @@ -546,7 +546,73 @@ ] } }, - "Account": { + "Azure.Core.Foundations.Error": { + "type": "object", + "description": "The error object.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "message": { + "type": "string", + "description": "A human-readable representation of the error." + }, + "target": { + "type": "string", + "description": "The target of the error." + }, + "details": { + "type": "array", + "description": "An array of details about specific errors that led to this reported error.", + "items": { + "$ref": "#/definitions/Azure.Core.Foundations.Error" + }, + "x-ms-identifiers": [] + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "An object containing more specific information than the current object about the error." + } + }, + "required": [ + "code", + "message" + ] + }, + "Azure.Core.Foundations.ErrorResponse": { + "type": "object", + "description": "A response containing error details.", + "properties": { + "error": { + "$ref": "#/definitions/Azure.Core.Foundations.Error", + "description": "The error object." + } + }, + "required": [ + "error" + ] + }, + "Azure.Core.Foundations.InnerError": { + "type": "object", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "Azure.Core.uuid": { + "type": "string", + "format": "uuid", + "description": "Universally Unique Identifier" + }, + "Microsoft.PlaywrightTesting.Shared.Account": { "type": "object", "description": "An account is a parent resource for most of the other service resources. It's directly mapped to an Azure resource.", "properties": { @@ -568,7 +634,7 @@ "readOnly": true }, "state": { - "$ref": "#/definitions/AccountState", + "$ref": "#/definitions/Microsoft.PlaywrightTesting.Shared.AccountState", "description": "The state of account - Active | Inactive", "readOnly": true }, @@ -578,7 +644,7 @@ "readOnly": true }, "subscriptionState": { - "$ref": "#/definitions/SubscriptionState", + "$ref": "#/definitions/Microsoft.PlaywrightTesting.Shared.SubscriptionState", "description": "The Azure subscription state - Registered | Unregistered | Warned | Suspended | Deleted", "readOnly": true }, @@ -708,7 +774,7 @@ "location" ] }, - "AccountState": { + "Microsoft.PlaywrightTesting.Shared.AccountState": { "type": "string", "description": "The account state.", "enum": [ @@ -732,94 +798,7 @@ ] } }, - "Azure.Core.Foundations.Error": { - "type": "object", - "description": "The error object.", - "properties": { - "code": { - "type": "string", - "description": "One of a server-defined set of error codes." - }, - "message": { - "type": "string", - "description": "A human-readable representation of the error." - }, - "target": { - "type": "string", - "description": "The target of the error." - }, - "details": { - "type": "array", - "description": "An array of details about specific errors that led to this reported error.", - "items": { - "$ref": "#/definitions/Azure.Core.Foundations.Error" - }, - "x-ms-identifiers": [] - }, - "innererror": { - "$ref": "#/definitions/Azure.Core.Foundations.InnerError", - "description": "An object containing more specific information than the current object about the error." - } - }, - "required": [ - "code", - "message" - ] - }, - "Azure.Core.Foundations.ErrorResponse": { - "type": "object", - "description": "A response containing error details.", - "properties": { - "error": { - "$ref": "#/definitions/Azure.Core.Foundations.Error", - "description": "The error object." - } - }, - "required": [ - "error" - ] - }, - "Azure.Core.Foundations.InnerError": { - "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", - "properties": { - "code": { - "type": "string", - "description": "One of a server-defined set of error codes." - }, - "innererror": { - "$ref": "#/definitions/Azure.Core.Foundations.InnerError", - "description": "Inner error." - } - } - }, - "Azure.Core.uuid": { - "type": "string", - "format": "uuid", - "description": "Universally Unique Identifier" - }, - "PagedAccessToken": { - "type": "object", - "description": "Paged collection of AccessToken items", - "properties": { - "value": { - "type": "array", - "description": "The AccessToken items on this page", - "items": { - "$ref": "#/definitions/AccessToken" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "SubscriptionState": { + "Microsoft.PlaywrightTesting.Shared.SubscriptionState": { "type": "string", "description": "The Azure subscription state.", "enum": [ @@ -860,6 +839,27 @@ } ] } + }, + "PagedAccessToken": { + "type": "object", + "description": "Paged collection of AccessToken items", + "properties": { + "value": { + "type": "array", + "description": "The AccessToken items on this page", + "items": { + "$ref": "#/definitions/AccessToken" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] } }, "parameters": { From b92fe44fbb8e415302342ecd6c2c5bb764da7949 Mon Sep 17 00:00:00 2001 From: Fernando Rauseo <73549810+FRL200@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:18:03 -0500 Subject: [PATCH 19/82] Update default values and descriptions for Key Vault on API Version 2024-11-01 (#31713) * Copy files from stable/2023-07-01 Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to stable/2024-11-01 Updated the API version from stable/2023-07-01 to stable/2024-11-01. * Added tag for 2024-11-01 in readme file * Removed unnecessary folder * Update default values and descriptions for Key Vault (#31683) * Initial Changes to Spec * Prettier ran * Ran prettier --------- Co-authored-by: Fernando Rauseo Landa * Ran prettier * Ran prettier on all files * Update managedHsm.json (#31732) * typo fix --------- Co-authored-by: Fernando Rauseo Landa Co-authored-by: Daniel Cherrett <49488952+Cherrett@users.noreply.github.com> --- .../stable/2024-11-01/common.json | 94 + .../examples/DeletedManagedHsm_Get.json | 28 + .../examples/DeletedManagedHsm_List.json | 47 + .../examples/DeletedManagedHsm_Purge.json | 15 + .../examples/ManagedHsm_CreateOrUpdate.json | 89 + .../examples/ManagedHsm_Delete.json | 17 + .../2024-11-01/examples/ManagedHsm_Get.json | 39 + .../ManagedHsm_ListByResourceGroup.json | 68 + .../ManagedHsm_ListBySubscription.json | 67 + ...tPrivateEndpointConnectionsByResource.json | 51 + .../ManagedHsm_ListRegionsByResource.json | 27 + .../examples/ManagedHsm_Update.json | 78 + .../ManagedHsm_checkMhsmNameAvailability.json | 16 + ...edHsm_deletePrivateEndpointConnection.json | 27 + ...nagedHsm_getPrivateEndpointConnection.json | 30 + .../ManagedHsm_listPrivateLinkResources.json | 30 + ...nagedHsm_putPrivateEndpointConnection.json | 37 + .../examples/checkVaultNameAvailability.json | 17 + .../stable/2024-11-01/examples/createKey.json | 53 + .../2024-11-01/examples/createSecret.json | 50 + .../2024-11-01/examples/createVault.json | 273 +++ .../examples/createVaultWithNetworkAcls.json | 132 ++ .../deletePrivateEndpointConnection.json | 28 + .../2024-11-01/examples/deleteVault.json | 16 + .../2024-11-01/examples/getDeletedVault.json | 26 + .../stable/2024-11-01/examples/getKey.json | 48 + .../2024-11-01/examples/getKeyVersion.json | 49 + .../getPrivateEndpointConnection.json | 33 + .../stable/2024-11-01/examples/getSecret.json | 28 + .../stable/2024-11-01/examples/getVault.json | 93 + .../examples/listDeletedVaults.json | 29 + .../2024-11-01/examples/listKeyVersions.json | 58 + .../stable/2024-11-01/examples/listKeys.json | 55 + .../2024-11-01/examples/listOperations.json | 332 +++ .../listPrivateEndpointConnection.json | 51 + .../examples/listPrivateLinkResources.json | 30 + .../2024-11-01/examples/listSecrets.json | 46 + .../stable/2024-11-01/examples/listVault.json | 24 + .../examples/listVaultByResourceGroup.json | 98 + .../examples/listVaultBySubscription.json | 97 + .../examples/managedHsmCreateKey.json | 52 + .../2024-11-01/examples/managedHsmGetKey.json | 47 + .../examples/managedHsmGetKeyVersion.json | 48 + .../examples/managedHsmListKeyVersions.json | 56 + .../examples/managedHsmListKeys.json | 53 + .../examples/purgeDeletedVault.json | 18 + .../putPrivateEndpointConnection.json | 39 + .../examples/updateAccessPoliciesAdd.json | 82 + .../2024-11-01/examples/updateSecret.json | 50 + .../2024-11-01/examples/updateVault.json | 271 +++ .../stable/2024-11-01/keys.json | 672 ++++++ .../stable/2024-11-01/keysManagedHsm.json | 651 +++++ .../stable/2024-11-01/keyvault.json | 2084 +++++++++++++++++ .../stable/2024-11-01/managedHsm.json | 1740 ++++++++++++++ .../stable/2024-11-01/providers.json | 288 +++ .../stable/2024-11-01/secrets.json | 491 ++++ .../keyvault/resource-manager/readme.md | 19 +- 57 files changed, 9085 insertions(+), 2 deletions(-) create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/common.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Get.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_List.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Purge.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_CreateOrUpdate.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Delete.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Get.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListByResourceGroup.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListBySubscription.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListRegionsByResource.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Update.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_checkMhsmNameAvailability.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_deletePrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_getPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_listPrivateLinkResources.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_putPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/checkVaultNameAvailability.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVaultWithNetworkAcls.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deletePrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deleteVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getDeletedVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKeyVersion.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listDeletedVaults.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeyVersions.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listOperations.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateLinkResources.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listSecrets.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultByResourceGroup.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultBySubscription.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmCreateKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKeyVersion.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeyVersions.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/purgeDeletedVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/putPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateAccessPoliciesAdd.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keysManagedHsm.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keyvault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/managedHsm.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/providers.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/secrets.json diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/common.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/common.json new file mode 100644 index 000000000000..d8726219f55f --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/common.json @@ -0,0 +1,94 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "paths": {}, + "definitions": { + "CloudError": { + "description": "An error response from Key Vault resource provider", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody" + } + }, + "x-ms-external": true, + "type": "object" + }, + "CloudErrorBody": { + "description": "An error response from Key Vault resource provider", + "properties": { + "code": { + "type": "string", + "description": "Error code. This is a mnemonic that can be consumed programmatically." + }, + "message": { + "type": "string", + "description": "User friendly error message. The message is typically localized and may vary with service version." + } + }, + "x-ms-external": true, + "type": "object" + }, + "SystemData": { + "description": "Metadata pertaining to creation and last modification of the key vault resource.", + "readOnly": true, + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the key vault resource." + }, + "createdByType": { + "description": "The type of identity that created the key vault resource.", + "$ref": "#/definitions/IdentityType" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the key vault resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the key vault resource." + }, + "lastModifiedByType": { + "description": "The type of identity that last modified the key vault resource.", + "$ref": "#/definitions/IdentityType" + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the key vault resource last modification (UTC)." + } + }, + "type": "object" + }, + "IdentityType": { + "type": "string", + "description": "The type of identity.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "identityType", + "modelAsString": true + } + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Get.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Get.json new file mode 100644 index 000000000000..19d32323a532 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Get.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "name": "hsm1", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm1", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_List.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_List.json new file mode 100644 index 000000000000..a60e63befa0a --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm1", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm2", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedManagedHSMs?api-version=2024-11-01&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Purge.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Purge.json new file mode 100644 index 000000000000..b96022346a6c --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/DeletedManagedHsm_Purge.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "name": "hsm1", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_CreateOrUpdate.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_CreateOrUpdate.json new file mode 100644 index 000000000000..d43b5a48dbd2 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_CreateOrUpdate.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false + }, + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + }, + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": null, + "provisioningState": "Provisioning", + "statusMessage": "Allocating hardware" + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Delete.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Delete.json new file mode 100644 index 000000000000..d2315cfc323f --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Get.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Get.json new file mode 100644 index 000000000000..380edd73cab4 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListByResourceGroup.json new file mode 100644 index 000000000000..54af88a9fa0e --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListByResourceGroup.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + }, + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm2.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "name": "hsm2", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs?api-version=2024-11-01&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListBySubscription.json new file mode 100644 index 000000000000..2c6f7a77d66b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListBySubscription.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + }, + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm2.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "name": "hsm2", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/managedHSMs?api-version=2024-11-01&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json new file mode 100644 index 000000000000..51d3f6d482d9 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec1", + "name": "sample-pec1", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe1" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec2", + "name": "sample-pec2", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe2" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListRegionsByResource.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListRegionsByResource.json new file mode 100644 index 000000000000..c8ee2d751404 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_ListRegionsByResource.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sample-region1", + "provisioningState": "Succeeded", + "isPrimary": true + }, + { + "name": "sample-region2", + "provisioningState": "Succeeded", + "isPrimary": false + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Update.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Update.json new file mode 100644 index 000000000000..7a3aa0ea6ba3 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_Update.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + }, + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Updating", + "statusMessage": "ManagedHsm is updating." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_checkMhsmNameAvailability.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_checkMhsmNameAvailability.json new file mode 100644 index 000000000000..59497bd54199 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_checkMhsmNameAvailability.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "mhsmName": { + "name": "sample-mhsm" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_deletePrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_deletePrivateEndpointConnection.json new file mode 100644 index 000000000000..2798a64366df --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_deletePrivateEndpointConnection.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "properties": { + "provisioningState": "Disconnected" + } + } + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec?operationid=25334578" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_getPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_getPrivateEndpointConnection.json new file mode 100644 index 000000000000..e1400de86ccc --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_getPrivateEndpointConnection.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_listPrivateLinkResources.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_listPrivateLinkResources.json new file mode 100644 index 000000000000..54973dc7fbee --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_listPrivateLinkResources.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateLinkResources/managedhsm", + "name": "managedhsm", + "type": "Microsoft.KeyVault/managedhsms/privateLinkResources", + "properties": { + "groupId": "managedhsms", + "requiredMembers": [ + "default" + ], + "requiredZoneNames": [ + "privatelink.managedhsm.azure.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_putPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_putPrivateEndpointConnection.json new file mode 100644 index 000000000000..b2b9c5d7c1db --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/ManagedHsm_putPrivateEndpointConnection.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this." + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this.", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/checkVaultNameAvailability.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/checkVaultNameAvailability.json new file mode 100644 index 000000000000..56466f2e3494 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/checkVaultNameAvailability.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "vaultName": { + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createKey.json new file mode 100644 index 000000000000..fbdd8bdace61 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createKey.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "kty": "RSA" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createSecret.json new file mode 100644 index 000000000000..e53f167ce556 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createSecret.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "value": "secret-value" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514938738, + "updated": 1514938738 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514938738, + "updated": 1514938738 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVault.json new file mode 100644 index 000000000000..460365db878e --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVault.json @@ -0,0 +1,273 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "location": "westus", + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "publicNetworkAccess": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [ + { + "value": "" + } + ], + "virtualNetworkRules": [ + { + "id": "", + "ignoreMissingVnetServiceEndpoint": false + } + ] + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "privateEndpointConnections": [ + { + "id": "", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "actionsRequired": "None" + } + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVaultWithNetworkAcls.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVaultWithNetworkAcls.json new file mode 100644 index 000000000000..18fcc7bf1f42 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/createVaultWithNetworkAcls.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "location": "westus", + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91/32" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91/32" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deletePrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deletePrivateEndpointConnection.json new file mode 100644 index 000000000000..bf110aa4219a --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deletePrivateEndpointConnection.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "properties": { + "provisioningState": "Disconnected" + } + } + }, + "202": { + "headers": { + "Retry-After": "60", + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec?operationid=25334578" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deleteVault.json new file mode 100644 index 000000000000..7fddeaabd86b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/deleteVault.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getDeletedVault.json new file mode 100644 index 000000000000..75a01f6761a4 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getDeletedVault.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "vaultName": "sample-vault", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/deletedVaults", + "properties": { + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "location": "westus", + "tags": {}, + "deletionDate": "2017-01-01T00:00:59Z", + "scheduledPurgeDate": "2017-04-01T00:00:59Z", + "purgeProtectionEnabled": true + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKey.json new file mode 100644 index 000000000000..f4fb51f21f36 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKey.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKeyVersion.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKeyVersion.json new file mode 100644 index 000000000000..1b7916eae0b5 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getKeyVersion.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "keyVersion": "fd618d9519b74f9aae94ade66b876acc", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/fd618d9519b74f9aae94ade66b876acc", + "name": "fd618d9519b74f9aae94ade66b876acc", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getPrivateEndpointConnection.json new file mode 100644 index 000000000000..918ec825dba1 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getPrivateEndpointConnection.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + }, + "204": { + "headers": {} + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getSecret.json new file mode 100644 index 000000000000..5e6b31430b87 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getSecret.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940950, + "updated": 1514940950 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/77445834f7de41bab81d0723bf996860" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getVault.json new file mode 100644 index 000000000000..85a8bd58e400 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/getVault.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listDeletedVaults.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listDeletedVaults.json new file mode 100644 index 000000000000..75d603c1b880 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listDeletedVaults.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedVaults", + "properties": { + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "location": "westus", + "tags": {}, + "deletionDate": "2017-01-01T00:00:59Z", + "scheduledPurgeDate": "2017-04-01T00:00:59Z", + "purgeProtectionEnabled": true + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2024-11-01&%24skiptoken=HY3RaoMwAEX%2fRcbeYhJrnRXKYNWOuqpME0sfNcYui0Yxade19N8ne7hcDlzOvVuKX81eKKmt4G4dooLQwgqsL2NGHUDYV6o68Z4rY1e388RtNvRQn2vNJjEaMSgNvcbneMUcsKg8BFwft8DndQ0w9hu2QOiFLRs4TsNFNHzSMBFsGvTQGvuD%2f5bVuTOw4R03vPkH%2fVqNAlzm5SxfOwh7ACOA8POTlvPjILlaU1ke8jImOc23JCppQVfZnna0DXc4ISc3vSVuRo5zJE6%2bj25C3vwk2v2kEV2mMn7PyOc1DbtNGkonnzuLym1G400uI5QRZj0efw%3d%3d" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeyVersions.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeyVersions.json new file mode 100644 index 000000000000..767329ccb648 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeyVersions.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/c2296aa24acf4daf86942bff5aca73dd", + "name": "c2296aa24acf4daf86942bff5aca73dd", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641074, + "updated": 1598641074, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/c2296aa24acf4daf86942bff5aca73dd" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/d5a04667b6f44b0ca62825f5eae93da6", + "name": "d5a04667b6f44b0ca62825f5eae93da6", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641295, + "updated": 1598641295, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/d5a04667b6f44b0ca62825f5eae93da6" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeys.json new file mode 100644 index 000000000000..2994538e9b7f --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listKeys.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-1", + "name": "sample-key-name-1", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493796, + "updated": 1596493796, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-1" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-2", + "name": "sample-key-name-2", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493797, + "updated": 1596493797, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-2" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listOperations.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listOperations.json new file mode 100644 index 000000000000..c82d4e6441f7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listOperations.json @@ -0,0 +1,332 @@ +{ + "parameters": { + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.KeyVault/vaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "View Key Vault", + "description": "View the properties of a key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Update Key Vault", + "description": "Create a new key vault or update the properties of an existing key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Delete Key Vault", + "description": "Delete a key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/deploy/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Use Vault for Azure Deployments", + "description": "Enables access to secrets in a key vault when deploying Azure resources" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/secrets/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Secret", + "operation": "View Secret Properties", + "description": "View the properties of a secret, but not its value" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/secrets/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Secret", + "operation": "Update Secret", + "description": "Create a new secret or update the value of an existing secret" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/accessPolicies/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Access Policy", + "operation": "Update Access Policy", + "description": "Update an existing access policy by merging or replacing, or add a new access policy to a vault." + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Log Definition", + "operation": "Read log definition", + "description": "Gets the available logs for a key vault" + }, + "isDataAction": false, + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "AuditEvent", + "displayName": "Audit Logs", + "blobDuration": "PT1H" + } + ], + "metricSpecifications": [ + { + "name": "ServiceApiHit", + "displayName": "", + "displayDescription": "", + "unit": "", + "aggregationType": "", + "supportedAggregationTypes": [ + "" + ], + "supportedTimeGrainTypes": [ + "" + ], + "lockAggregationType": "", + "dimensions": [ + { + "name": "ActivityType", + "displayName": "", + "toBeExportedForShoebox": true + }, + { + "name": "ActivityName", + "displayName": "", + "toBeExportedForShoebox": true + } + ], + "fillGapWithZero": false, + "internalMetricName": "AuditEvent" + } + ] + } + } + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Diagnostic Settings", + "operation": "Read diagnostic setting", + "description": "Gets the diagnostic setting for the resource" + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Diagnostic Settings", + "operation": "Write diagnostic setting", + "description": "Creates or updates the diagnostic setting for the resource" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/register/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Subscription", + "operation": "Register Subscription", + "description": "Registers a subscription" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/unregister/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Subscription", + "operation": "Unregister Subscription", + "description": "Unregisters a subscription" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/operations/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Operations", + "operation": "Available Key Vault Operations", + "description": "Lists operations available on Microsoft.KeyVault resource provider" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/checkNameAvailability/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Name Availability", + "operation": "Check Name Availability", + "description": "Checks that a key vault name is valid and is not in use" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/deletedVaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "View Soft Deleted Vaults", + "description": "View the properties of soft deleted key vaults" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/deletedVaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "View Soft Deleted Key Vault", + "description": "View the properties of a soft deleted key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/deletedVaults/purge/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "Purge Soft Deleted Key Vault", + "description": "Purge a soft deleted key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/operationResults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Long Run Operation Result", + "operation": "Check Operation Result", + "description": "Check the result of a long run operation" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "View HSM pool", + "description": "View the properties of an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Create or Update HSM pool", + "description": "Create a new HSM pool of update the properties of an existing HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Delete HSM pool", + "description": "Delete an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/joinVault/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Join KeyVault to HSM pool", + "description": "Join a key vault to an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "View Managed HSM", + "description": "View the properties of a Managed HSM" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "Create or Update Managed HSM", + "description": "Create a new Managed HSM of update the properties of an existing Managed HSM" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "Delete Managed HSM", + "description": "Delete a Managed HSM" + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Metric Definition", + "operation": "Read metric definition", + "description": "Gets the available metrics for a key vault" + }, + "isDataAction": false, + "properties": { + "serviceSpecification": {} + } + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/locations/deleteVirtualNetworkOrSubnets/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Location", + "operation": "Modify Network ACLs containing the deleted Vitual Network or Subnet ", + "description": "Notifies Microsoft.KeyVault that a virtual network or subnet is being deleted" + }, + "isDataAction": false + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateEndpointConnection.json new file mode 100644 index 000000000000..fb7db94f5a20 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateEndpointConnection.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateLinkResources.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateLinkResources.json new file mode 100644 index 000000000000..796732d56b93 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listPrivateLinkResources.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateLinkResources/vault", + "name": "vault", + "type": "Microsoft.KeyVault/vaults/privateLinkResources", + "properties": { + "groupId": "vault", + "requiredMembers": [ + "default" + ], + "requiredZoneNames": [ + "privatelink.vaultcore.azure.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listSecrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listSecrets.json new file mode 100644 index 000000000000..5a61926ade00 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listSecrets.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514941476, + "updated": 1514941476 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/40af42fbc10047f8a756a73211492f56" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name2", + "name": "secret-name2", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514941476, + "updated": 1514941476 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name2", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name2/cd7264a6f56c44d1b594423c80609aae" + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVault.json new file mode 100644 index 000000000000..3397baaa9f83 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVault.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "$filter": "resourceType eq 'Microsoft.KeyVault/vaults'", + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2015-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {} + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceType+eq+%27Microsoft.KeyVault%2fvaults%27&%24top=4&api-version=2015-11-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVEwTTJNVGMtIiwibmV4dFJvd0tleSI6IjEhMTMyIU5rUTRSVEU1UXpJelFUWXdORGd4UmpoRlFrSXhNVGhFUXpNd01EZEROVVJmVkVkT1RDMU5TVU5TVDFOUFJsUTZNa1ZMUlZsV1FWVk1WRG95UmxaQlZVeFVVeTFUVTFKSExVcEpUVG95UkZSRlUxUTZNa1JXUVZWTVZDMVhSVk5VVlZNLSJ9" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultByResourceGroup.json new file mode 100644 index 000000000000..929707544c36 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultByResourceGroup.json @@ -0,0 +1,98 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "premium" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "enableSoftDelete": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net/", + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults?api-version=2024-11-01&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultBySubscription.json new file mode 100644 index 000000000000..d7822e60ffa7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/listVaultBySubscription.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "premium" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "enableSoftDelete": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net/", + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?api-version=22024-11-01&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmCreateKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmCreateKey.json new file mode 100644 index 000000000000..5ad097af5ae8 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmCreateKey.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "kty": "RSA" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKey.json new file mode 100644 index 000000000000..a4560459e86d --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKey.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKeyVersion.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKeyVersion.json new file mode 100644 index 000000000000..5dffb98ee0d7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmGetKeyVersion.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "keyVersion": "fd618d9519b74f9aae94ade66b876acc", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/fd618d9519b74f9aae94ade66b876acc", + "name": "fd618d9519b74f9aae94ade66b876acc", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeyVersions.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeyVersions.json new file mode 100644 index 000000000000..ec232c119afd --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeyVersions.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/c2296aa24acf4daf86942bff5aca73dd", + "name": "c2296aa24acf4daf86942bff5aca73dd", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641074, + "updated": 1598641074, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/c2296aa24acf4daf86942bff5aca73dd" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/d5a04667b6f44b0ca62825f5eae93da6", + "name": "d5a04667b6f44b0ca62825f5eae93da6", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641295, + "updated": 1598641295, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/d5a04667b6f44b0ca62825f5eae93da6" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeys.json new file mode 100644 index 000000000000..776ed42a78f6 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/managedHsmListKeys.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name-1", + "name": "sample-key-name-1", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493796, + "updated": 1596493796, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name-1" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name-2", + "name": "sample-key-name-2", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493797, + "updated": 1596493797, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name-2" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/purgeDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/purgeDeletedVault.json new file mode 100644 index 000000000000..109280f8c6c6 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/purgeDeletedVault.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "vaultName": "sample-vault", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01" + }, + "responses": { + "200": { + "headers": {} + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/kv-group/providers/Microsoft.KeyVault/vaults/vault1?api-version=2024-11-01" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/putPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/putPrivateEndpointConnection.json new file mode 100644 index 000000000000..b2262351f4b0 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/putPrivateEndpointConnection.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-11-01", + "properties": { + "etag": "", + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this." + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this.", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateAccessPoliciesAdd.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateAccessPoliciesAdd.json new file mode 100644 index 000000000000..7e522e9a201d --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateAccessPoliciesAdd.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "operationKind": "add", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/", + "type": "Microsoft.KeyVault/vaults/accessPolicies", + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/", + "type": "Microsoft.KeyVault/vaults/accessPolicies", + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateSecret.json new file mode 100644 index 000000000000..38f167ea31eb --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateSecret.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "value": "secret-value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940684, + "updated": 1514940698 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940684, + "updated": 1514940698 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateVault.json new file mode 100644 index 000000000000..692c46470c92 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/examples/updateVault.json @@ -0,0 +1,271 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-11-01", + "parameters": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "publicNetworkAccess": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [ + { + "value": "" + } + ], + "virtualNetworkRules": [ + { + "id": "", + "ignoreMissingVnetServiceEndpoint": false + } + ] + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "privateEndpointConnections": [ + { + "id": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "actionsRequired": "None" + } + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keys.json new file mode 100644 index 000000000000..b1770ba5a1cf --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keys.json @@ -0,0 +1,672 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}": { + "put": { + "tags": [ + "Keys" + ], + "operationId": "Keys_CreateIfNotExist", + "description": "Creates the first version of a new key if it does not exist. If it already exists, then the existing key is returned without any write operations being performed. This API does not create subsequent versions, and does not update existing keys.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the key vault which contains the key to be created." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be created. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/KeyCreateParameters" + }, + "description": "The parameters used to create the specified key." + } + ], + "responses": { + "200": { + "description": "The created key.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a key": { + "$ref": "./examples/createKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_Get", + "description": "Gets the current version of the specified key from the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key": { + "$ref": "./examples/getKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_List", + "description": "Lists the keys in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the keys to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of keys.", + "schema": { + "$ref": "#/definitions/KeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List keys in the vault": { + "$ref": "./examples/listKeys.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions/{keyVersion}": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_GetVersion", + "description": "Gets the specified version of the specified key in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key version to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key version to be retrieved." + }, + { + "name": "keyVersion", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{32}$", + "description": "The version of the key to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key version.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key version": { + "$ref": "./examples/getKeyVersion.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_ListVersions", + "description": "Lists the versions of the specified key in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key versions to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key versions to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of key versions.", + "schema": { + "$ref": "#/definitions/KeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List key versions in the vault": { + "$ref": "./examples/listKeyVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "KeyProperties": { + "properties": { + "attributes": { + "$ref": "#/definitions/KeyAttributes", + "description": "The attributes of the key." + }, + "kty": { + "type": "string", + "minLength": 1, + "description": "The type of the key. For valid values, see JsonWebKeyType.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true + } + }, + "keyOps": { + "type": "array", + "items": { + "type": "string", + "description": "The permitted JSON web key operations of the key. For more information, see JsonWebKeyOperation.", + "enum": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey", + "import", + "release" + ], + "x-ms-enum": { + "name": "JsonWebKeyOperation", + "modelAsString": true + } + } + }, + "keySize": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA. Default for RSA and RSA-HSM keys is 2048. Exception made for bring your own key (BYOK), key exchange keys default to 4096." + }, + "curveName": { + "type": "string", + "description": "The elliptic curve name. For valid values, see JsonWebKeyCurveName. Default for EC and EC-HSM keys is P-256", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true + } + }, + "keyUri": { + "type": "string", + "description": "The URI to retrieve the current version of the key.", + "readOnly": true + }, + "keyUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the key.", + "readOnly": true + }, + "rotationPolicy": { + "$ref": "#/definitions/RotationPolicy", + "description": "Key rotation policy in response. It will be used for both output and input. Omitted if empty" + }, + "release_policy": { + "$ref": "#/definitions/KeyReleasePolicy", + "description": "Key release policy in response. It will be used for both output and input. Omitted if empty" + } + }, + "description": "The properties of the key.", + "type": "object" + }, + "KeyAttributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether or not the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "int64", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "int64", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "recoveryLevel": { + "type": "string", + "description": "The deletion recovery level currently in effect for the object. If it contains 'Purgeable', then the object can be permanently deleted by a privileged user; otherwise, only the system can purge the object at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true + }, + "readOnly": true, + "x-nullable": false + }, + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported.", + "default": false + } + }, + "description": "The object attributes managed by the Azure Key Vault service.", + "type": "object" + }, + "KeyCreateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key." + }, + "properties": { + "$ref": "#/definitions/KeyProperties", + "description": "The properties of the key to be created." + } + }, + "description": "The parameters used to create a key.", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "Key": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/KeyProperties", + "description": "The properties of the key." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "./keyvault.json#/definitions/Resource" + } + ], + "description": "The key resource.", + "type": "object" + }, + "KeyListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Key" + }, + "description": "The key resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next page of keys." + } + }, + "description": "The page of keys.", + "type": "object" + }, + "RotationPolicy": { + "properties": { + "attributes": { + "$ref": "#/definitions/KeyRotationPolicyAttributes", + "description": "The attributes of key rotation policy." + }, + "lifetimeActions": { + "type": "array", + "items": { + "$ref": "#/definitions/LifetimeAction" + }, + "x-ms-identifiers": [], + "description": "The lifetimeActions for key rotation action." + } + }, + "type": "object" + }, + "KeyRotationPolicyAttributes": { + "properties": { + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "expiryTime": { + "type": "string", + "description": "The expiration time for the new key version. It should be in ISO8601 format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "LifetimeAction": { + "properties": { + "trigger": { + "$ref": "#/definitions/Trigger", + "description": "The trigger of key rotation policy lifetimeAction." + }, + "action": { + "$ref": "#/definitions/Action", + "description": "The action of key rotation policy lifetimeAction." + } + }, + "type": "object" + }, + "Trigger": { + "properties": { + "timeAfterCreate": { + "type": "string", + "description": "The time duration after key creation to rotate the key. It only applies to rotate. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + }, + "timeBeforeExpiry": { + "type": "string", + "description": "The time duration before key expiring to rotate or notify. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "Action": { + "properties": { + "type": { + "type": "string", + "description": "The type of action.", + "enum": [ + "rotate", + "notify" + ], + "x-ms-enum": { + "name": "KeyRotationPolicyActionType", + "modelAsString": false + } + } + }, + "type": "object" + }, + "KeyReleasePolicy": { + "properties": { + "contentType": { + "description": "Content type and version of key release policy", + "type": "string", + "default": "application/json; charset=utf-8" + }, + "data": { + "description": "Blob encoding the policy rules under which the key can be released.", + "type": "string", + "format": "base64url" + } + }, + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keysManagedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keysManagedHsm.json new file mode 100644 index 000000000000..bfaab1090f0b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keysManagedHsm.json @@ -0,0 +1,651 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}": { + "put": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_CreateIfNotExist", + "description": "Creates the first version of a new key if it does not exist. If it already exists, then the existing key is returned without any write operations being performed. This API does not create subsequent versions, and does not update existing keys.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsmKeyCreateParameters" + }, + "description": "The parameters used to create the specified key." + } + ], + "responses": { + "200": { + "description": "The created key.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a key": { + "$ref": "./examples/managedHsmCreateKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_Get", + "description": "Gets the current version of the specified key from the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key": { + "$ref": "./examples/managedHsmGetKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_List", + "description": "Lists the keys in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of keys.", + "schema": { + "$ref": "#/definitions/ManagedHsmKeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List keys in the managed HSM": { + "$ref": "./examples/managedHsmListKeys.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}/versions/{keyVersion}": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_GetVersion", + "description": "Gets the specified version of the specified key in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyVersion" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key version.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key version": { + "$ref": "./examples/managedHsmGetKeyVersion.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}/versions": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_ListVersions", + "description": "Lists the versions of the specified key in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of key versions.", + "schema": { + "$ref": "#/definitions/ManagedHsmKeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List key versions in the managed HSM": { + "$ref": "./examples/managedHsmListKeyVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "ManagedHsmKeyProperties": { + "properties": { + "attributes": { + "$ref": "#/definitions/ManagedHsmKeyAttributes", + "description": "The attributes of the key." + }, + "kty": { + "type": "string", + "minLength": 1, + "description": "The type of the key. For valid values, see JsonWebKeyType.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true + } + }, + "keyOps": { + "type": "array", + "items": { + "type": "string", + "description": "The permitted JSON web key operations of the key. For more information, see JsonWebKeyOperation.", + "enum": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey", + "import", + "release" + ], + "x-ms-enum": { + "name": "JsonWebKeyOperation", + "modelAsString": true + } + } + }, + "keySize": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA. Default for RSA and RSA-HSM keys is 2048. Exception made for bring your own key (BYOK), key exchange keys default to 4096." + }, + "curveName": { + "type": "string", + "description": "The elliptic curve name. For valid values, see JsonWebKeyCurveName. Default for EC and EC-HSM keys is P-256", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true + } + }, + "keyUri": { + "type": "string", + "description": "The URI to retrieve the current version of the key.", + "readOnly": true + }, + "keyUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the key.", + "readOnly": true + }, + "rotationPolicy": { + "$ref": "#/definitions/ManagedHsmRotationPolicy", + "description": "Key rotation policy in response. It will be used for both output and input. Omitted if empty" + }, + "release_policy": { + "$ref": "#/definitions/ManagedHsmKeyReleasePolicy", + "description": "Key release policy in response. It will be used for both output and input. Omitted if empty" + } + }, + "description": "The properties of the key.", + "type": "object" + }, + "ManagedHsmKeyAttributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether or not the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "int64", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "int64", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "recoveryLevel": { + "type": "string", + "description": "The deletion recovery level currently in effect for the object. If it contains 'Purgeable', then the object can be permanently deleted by a privileged user; otherwise, only the system can purge the object at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true + }, + "readOnly": true, + "x-nullable": false + }, + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported." + } + }, + "description": "The object attributes managed by the Azure Key Vault service.", + "type": "object" + }, + "ManagedHsmKeyCreateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key." + }, + "properties": { + "$ref": "#/definitions/ManagedHsmKeyProperties", + "description": "The properties of the key to be created." + } + }, + "description": "The parameters used to create a key.", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "ManagedHsmKey": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ManagedHsmKeyProperties", + "description": "The properties of the key." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/ProxyResourceWithoutSystemData" + } + ], + "description": "The key resource.", + "type": "object" + }, + "ManagedHsmKeyListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsmKey" + }, + "description": "The key resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next page of keys." + } + }, + "description": "The page of keys.", + "type": "object" + }, + "ManagedHsmRotationPolicy": { + "properties": { + "attributes": { + "$ref": "#/definitions/ManagedHsmKeyRotationPolicyAttributes", + "description": "The attributes of key rotation policy." + }, + "lifetimeActions": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsmLifetimeAction" + }, + "x-ms-identifiers": [], + "description": "The lifetimeActions for key rotation action." + } + }, + "type": "object" + }, + "ManagedHsmKeyRotationPolicyAttributes": { + "properties": { + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "expiryTime": { + "type": "string", + "description": "The expiration time for the new key version. It should be in ISO8601 format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "ManagedHsmLifetimeAction": { + "properties": { + "trigger": { + "$ref": "#/definitions/ManagedHsmTrigger", + "description": "The trigger of key rotation policy lifetimeAction." + }, + "action": { + "$ref": "#/definitions/ManagedHsmAction", + "description": "The action of key rotation policy lifetimeAction." + } + }, + "type": "object" + }, + "ManagedHsmTrigger": { + "properties": { + "timeAfterCreate": { + "type": "string", + "description": "The time duration after key creation to rotate the key. It only applies to rotate. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + }, + "timeBeforeExpiry": { + "type": "string", + "description": "The time duration before key expiring to rotate or notify. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "ManagedHsmAction": { + "properties": { + "type": { + "type": "string", + "description": "The type of action.", + "enum": [ + "rotate", + "notify" + ], + "x-ms-enum": { + "name": "KeyRotationPolicyActionType", + "modelAsString": false + } + } + }, + "type": "object" + }, + "ManagedHsmKeyReleasePolicy": { + "properties": { + "contentType": { + "description": "Content type and version of key release policy", + "type": "string", + "default": "application/json; charset=utf-8" + }, + "data": { + "description": "Blob encoding the policy rules under which the key can be released.", + "type": "string", + "format": "base64url" + } + }, + "type": "object" + }, + "ProxyResourceWithoutSystemData": { + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource" + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ], + "description": "Resource tags." + } + }, + "x-ms-azure-resource": true + } + }, + "parameters": { + "ManagedHSMName": { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Managed HSM Pool within the specified resource group.", + "pattern": "^[A-Za-z]([A-Za-z0-9]|\\-[A-Za-z0-9])+$", + "maxLength": 24, + "minLength": 3, + "x-ms-parameter-location": "method" + }, + "ManagedHSMKeyName": { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be created. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", + "x-ms-parameter-location": "method" + }, + "ManagedHSMKeyVersion": { + "name": "keyVersion", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{32}$", + "description": "The version of the key to be retrieved.", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keyvault.json new file mode 100644 index 000000000000..c5693bab469b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/keyvault.json @@ -0,0 +1,2084 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}": { + "put": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_CreateOrUpdate", + "x-ms-long-running-operation": true, + "description": "Create or update a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the server belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultCreateOrUpdateParameters" + }, + "description": "Parameters to create or update the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "200": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a new vault or update an existing vault": { + "$ref": "./examples/createVault.json" + }, + "Create or update a vault with network acls": { + "$ref": "./examples/createVaultWithNetworkAcls.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "patch": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Update", + "description": "Update a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the server belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultPatchParameters" + }, + "description": "Parameters to patch the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Patched vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "200": { + "description": "Patched vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Update an existing vault": { + "$ref": "./examples/updateVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "delete": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Delete", + "description": "Deletes the specified Azure key vault.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault to delete" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK Response." + }, + "204": { + "description": "No Content." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Delete a vault": { + "$ref": "./examples/deleteVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Get", + "description": "Gets the specified Azure key vault.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Retrieve a vault": { + "$ref": "./examples/getVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicies/{operationKind}": { + "put": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_UpdateAccessPolicy", + "description": "Update access policies in a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "operationKind", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "add", + "replace", + "remove" + ], + "x-ms-enum": { + "name": "AccessPolicyUpdateKind", + "modelAsString": false + }, + "description": "Name of the operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + }, + "description": "Access policy to merge into the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "The updated access policies", + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + } + }, + "200": { + "description": "The updated access policies", + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Add an access policy, or update an access policy with new permissions": { + "$ref": "./examples/updateAccessPoliciesAdd.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListByResourceGroup", + "description": "The List operation gets information about the vaults associated with the subscription and within the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the specified resource group.", + "schema": { + "$ref": "#/definitions/VaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified resource group": { + "$ref": "./examples/listVaultByResourceGroup.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListBySubscription", + "description": "The List operation gets information about the vaults associated with the subscription.", + "parameters": [ + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the specified subscription.", + "schema": { + "$ref": "#/definitions/VaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified subscription": { + "$ref": "./examples/listVaultBySubscription.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedVaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListDeleted", + "description": "Gets information about the deleted vaults in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about all deleted key vaults in a subscription.", + "schema": { + "$ref": "#/definitions/DeletedVaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List deleted vaults in the specified subscription": { + "$ref": "./examples/listDeletedVaults.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_GetDeleted", + "description": "Gets the deleted Azure key vault.", + "parameters": [ + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the deleted vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about the deleted vault.", + "schema": { + "$ref": "#/definitions/DeletedVault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Retrieve a deleted vault": { + "$ref": "./examples/getDeletedVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}/purge": { + "post": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_PurgeDeleted", + "x-ms-long-running-operation": true, + "description": "Permanently deletes the specified vault. aka Purges the deleted Azure key vault.", + "parameters": [ + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the soft-deleted vault." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the soft-deleted vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The vault is purged." + }, + "202": { + "description": "Vault is being purged." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Purge a deleted vault": { + "$ref": "./examples/purgeDeletedVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resources": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_List", + "description": "The List operation gets information about the vaults associated with the subscription.", + "parameters": [ + { + "name": "$filter", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "resourceType eq 'Microsoft.KeyVault/vaults'" + ], + "x-ms-enum": { + "name": "VaultListFilterTypes", + "modelAsString": false + }, + "description": "The filter to apply on the operation." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "name": "api-version", + "in": "query", + "required": true, + "x-ms-api-version": false, + "type": "string", + "enum": [ + "2015-11-01" + ], + "x-ms-enum": { + "name": "ResourceManagerApiVersions", + "modelAsString": false + }, + "description": "Azure Resource Manager Api Version." + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the subscription.", + "schema": { + "$ref": "#/definitions/ResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified subscription": { + "$ref": "./examples/listVault.json" + } + }, + "produces": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkNameAvailability": { + "post": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_CheckNameAvailability", + "description": "Checks that the vault name is valid and is not already in use.", + "parameters": [ + { + "name": "vaultName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultCheckNameAvailabilityParameters" + }, + "description": "The name of the vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK -- Operation to check the vault name availability was successful.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Validate a vault name": { + "$ref": "./examples/checkVaultNameAvailability.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Get", + "description": "Gets the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultGetPrivateEndpointConnection": { + "$ref": "./examples/getPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Private endpoint connection successfully returned.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "put": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Put", + "description": "Updates the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultPutPrivateEndpointConnection": { + "$ref": "./examples/putPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "properties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The intended state of private endpoint connection." + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The state of private endpoint connection was updated successfully.", + "headers": { + "Retry-After": { + "description": "(specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int32" + }, + "Azure-AsyncOperation": { + "description": "(specified only if operation does not finish synchronously) The URI to poll for completion status. The response of this URI may be synchronous or asynchronous.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Delete", + "description": "Deletes the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultDeletePrivateEndpointConnection": { + "$ref": "./examples/deletePrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The private endpoint connection was successfully deleted.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "202": { + "description": "The private endpoint connection is being deleted.", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in the location header.", + "type": "integer", + "format": "int32" + }, + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateEndpointConnections": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_ListByResource", + "description": "The List operation gets information about the private endpoint connections associated with the vault.", + "x-ms-examples": { + "KeyVaultListPrivateEndpointConnection": { + "$ref": "./examples/listPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Get information about all private endpoint connections in the specified resource group.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateLinkResources": { + "get": { + "tags": [ + "PrivateLinkResources" + ], + "operationId": "PrivateLinkResources_ListByVault", + "description": "Gets the private link resources supported for the key vault.", + "x-ms-examples": { + "KeyVaultListPrivateLinkResources": { + "$ref": "./examples/listPrivateLinkResources.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved private link resources.", + "schema": { + "$ref": "#/definitions/PrivateLinkResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + } + }, + "definitions": { + "Sku": { + "properties": { + "family": { + "type": "string", + "description": "SKU family name", + "enum": [ + "A" + ], + "x-ms-client-default": "A", + "x-ms-enum": { + "name": "SkuFamily", + "modelAsString": true + } + }, + "name": { + "type": "string", + "description": "SKU name to specify whether the key vault is a standard vault or a premium vault.", + "enum": [ + "standard", + "premium" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + } + } + }, + "description": "SKU details", + "required": [ + "name", + "family" + ], + "type": "object" + }, + "AccessPolicyEntry": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "objectId": { + "type": "string", + "description": "The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies." + }, + "applicationId": { + "type": "string", + "format": "uuid", + "description": " Application ID of the client making request on behalf of a principal" + }, + "permissions": { + "$ref": "#/definitions/Permissions", + "description": "Permissions the identity has for keys, secrets and certificates." + } + }, + "description": "An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.", + "required": [ + "tenantId", + "objectId", + "permissions" + ], + "type": "object" + }, + "Permissions": { + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge", + "release", + "rotate", + "getrotationpolicy", + "setrotationpolicy" + ], + "x-ms-enum": { + "name": "KeyPermissions", + "modelAsString": true + } + }, + "description": "Permissions to keys" + }, + "secrets": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "x-ms-enum": { + "name": "SecretPermissions", + "modelAsString": true + } + }, + "description": "Permissions to secrets" + }, + "certificates": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge", + "backup", + "restore" + ], + "x-ms-enum": { + "name": "CertificatePermissions", + "modelAsString": true + } + }, + "description": "Permissions to certificates" + }, + "storage": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "delete", + "set", + "update", + "regeneratekey", + "recover", + "purge", + "backup", + "restore", + "setsas", + "listsas", + "getsas", + "deletesas" + ], + "x-ms-enum": { + "name": "StoragePermissions", + "modelAsString": true + } + }, + "description": "Permissions to storage accounts" + } + }, + "description": "Permissions the identity has for keys, secrets, certificates and storage.", + "type": "object" + }, + "VaultProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "SKU details" + }, + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required." + }, + "vaultUri": { + "type": "string", + "description": "The URI of the vault for performing operations on keys and secrets." + }, + "hsmPoolResourceId": { + "type": "string", + "description": "The resource id of HSM Pool.", + "readOnly": true + }, + "enabledForDeployment": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault." + }, + "enabledForDiskEncryption": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys." + }, + "enabledForTemplateDeployment": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault." + }, + "enableSoftDelete": { + "type": "boolean", + "default": true, + "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "default": 90, + "description": "softDelete data retention days. It accepts >=7 and <=90." + }, + "enableRbacAuthorization": { + "type": "boolean", + "default": false, + "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC." + }, + "createMode": { + "type": "string", + "description": "The vault's create mode to indicate whether the vault need to be recovered or not.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false + }, + "x-ms-mutability": [ + "create", + "update" + ] + }, + "enablePurgeProtection": { + "type": "boolean", + "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value." + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Rules governing the accessibility of the key vault from specific network locations." + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the vault.", + "enum": [ + "Succeeded", + "RegisteringDns" + ], + "x-ms-enum": { + "name": "VaultProvisioningState", + "modelAsString": true + } + }, + "privateEndpointConnections": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnectionItem" + }, + "description": "List of private endpoint connections associated with the key vault." + }, + "publicNetworkAccess": { + "type": "string", + "default": "enabled", + "description": "Property to specify whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules." + } + }, + "required": [ + "tenantId", + "sku" + ], + "description": "Properties of the vault", + "type": "object" + }, + "VaultPatchProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "SKU details" + }, + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID." + }, + "enabledForDeployment": { + "type": "boolean", + "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault." + }, + "enabledForDiskEncryption": { + "type": "boolean", + "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys." + }, + "enabledForTemplateDeployment": { + "type": "boolean", + "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault." + }, + "enableSoftDelete": { + "type": "boolean", + "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. Once set to true, it cannot be reverted to false." + }, + "enableRbacAuthorization": { + "type": "boolean", + "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the value of this property will not change." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "description": "softDelete data retention days. It accepts >=7 and <=90." + }, + "createMode": { + "type": "string", + "description": "The vault's create mode to indicate whether the vault need to be recovered or not.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false + } + }, + "enablePurgeProtection": { + "type": "boolean", + "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value." + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "A collection of rules governing the accessibility of the vault from specific network locations." + }, + "publicNetworkAccess": { + "type": "string", + "description": "Property to specify whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules." + } + }, + "description": "Properties of the vault", + "type": "object" + }, + "VaultAccessPolicyProperties": { + "properties": { + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID." + } + }, + "required": [ + "accessPolicies" + ], + "description": "Properties of the vault access policy", + "type": "object" + }, + "DeletedVaultProperties": { + "properties": { + "vaultId": { + "readOnly": true, + "type": "string", + "description": "The resource id of the original vault." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The location of the original vault." + }, + "deletionDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The deleted date." + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purged date." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags of the original vault." + }, + "purgeProtectionEnabled": { + "readOnly": true, + "type": "boolean", + "description": "Purge protection status of the original vault." + } + }, + "description": "Properties of the deleted vault.", + "type": "object" + }, + "VaultCreateOrUpdateParameters": { + "properties": { + "location": { + "type": "string", + "description": "The supported Azure location where the key vault should be created." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key vault." + }, + "properties": { + "$ref": "#/definitions/VaultProperties", + "description": "Properties of the vault" + } + }, + "description": "Parameters for creating or updating a vault", + "required": [ + "location", + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultPatchParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key vault. " + }, + "properties": { + "$ref": "#/definitions/VaultPatchProperties", + "description": "Properties of the vault" + } + }, + "description": "Parameters for creating or updating a vault", + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultAccessPolicyParameters": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource id of the access policy." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The resource name of the access policy." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource name of the access policy." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The resource type of the access policy." + }, + "properties": { + "$ref": "#/definitions/VaultAccessPolicyProperties", + "description": "Properties of the access policy" + } + }, + "description": "Parameters for updating the access policy in a vault", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "Vault": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified identifier of the key vault resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Name of the key vault resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type of the key vault resource." + }, + "location": { + "type": "string", + "description": "Azure location of the key vault resource." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags assigned to the key vault resource." + }, + "systemData": { + "description": "System metadata for the key vault.", + "$ref": "common.json#/definitions/SystemData" + }, + "properties": { + "$ref": "#/definitions/VaultProperties", + "description": "Properties of the vault" + } + }, + "required": [ + "properties" + ], + "description": "Resource information with extended details.", + "x-ms-azure-resource": true, + "type": "object" + }, + "DeletedVault": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource ID for the deleted key vault." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the key vault." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the key vault." + }, + "properties": { + "$ref": "#/definitions/DeletedVaultProperties", + "description": "Properties of the vault" + } + }, + "description": "Deleted vault information with extended details.", + "type": "object" + }, + "VaultListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Vault" + }, + "description": "The list of vaults." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of vaults." + } + }, + "description": "List of vaults", + "type": "object" + }, + "DeletedVaultListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DeletedVault" + }, + "description": "The list of deleted vaults." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted vaults." + } + }, + "description": "List of vaults", + "type": "object" + }, + "ResourceListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + }, + "description": "The list of vault resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of vault resources." + } + }, + "description": "List of vault resources.", + "type": "object" + }, + "Resource": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified identifier of the key vault resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Name of the key vault resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type of the key vault resource." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "Azure location of the key vault resource." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags assigned to the key vault resource." + } + }, + "description": "Key Vault resource", + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultCheckNameAvailabilityParameters": { + "properties": { + "name": { + "type": "string", + "description": "The vault name." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.KeyVault/vaults" + ], + "x-ms-enum": { + "name": "Type", + "modelAsString": false + }, + "description": "The type of resource, Microsoft.KeyVault/vaults" + } + }, + "required": [ + "name", + "type" + ], + "description": "The parameters used to check the availability of the vault name.", + "type": "object" + }, + "CheckNameAvailabilityResult": { + "properties": { + "nameAvailable": { + "readOnly": true, + "type": "boolean", + "description": "A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used." + }, + "reason": { + "readOnly": true, + "type": "string", + "description": "The reason that a vault name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": false + } + }, + "message": { + "readOnly": true, + "type": "string", + "description": "An error message explaining the Reason value in more detail." + } + }, + "description": "The CheckNameAvailability operation response.", + "type": "object" + }, + "NetworkRuleSet": { + "properties": { + "bypass": { + "type": "string", + "description": "Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'.", + "enum": [ + "AzureServices", + "None" + ], + "x-ms-enum": { + "name": "NetworkRuleBypassOptions", + "modelAsString": true + } + }, + "defaultAction": { + "type": "string", + "description": "The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "NetworkRuleAction", + "modelAsString": true + } + }, + "ipRules": { + "type": "array", + "items": { + "$ref": "#/definitions/IPRule" + }, + "description": "The list of IP address rules." + }, + "virtualNetworkRules": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkRule" + }, + "x-ms-identifiers": [ + "id" + ], + "description": "The list of virtual network rules." + } + }, + "description": "A set of rules governing the network accessibility of a vault.", + "type": "object" + }, + "IPRule": { + "properties": { + "value": { + "type": "string", + "description": "An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78)." + } + }, + "required": [ + "value" + ], + "description": "A rule governing the accessibility of a vault from a specific ip address or ip range.", + "type": "object" + }, + "VirtualNetworkRule": { + "properties": { + "id": { + "type": "string", + "description": "Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'." + }, + "ignoreMissingVnetServiceEndpoint": { + "type": "boolean", + "description": "Property to specify whether NRP will ignore the check if parent subnet has serviceEndpoints configured." + } + }, + "required": [ + "id" + ], + "description": "A rule governing the accessibility of a vault from a specific virtual network.", + "type": "object" + }, + "PrivateEndpointConnectionItem": { + "properties": { + "id": { + "type": "string", + "description": "Id of private endpoint connection." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + }, + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Private endpoint connection properties." + } + }, + "description": "Private endpoint connection item.", + "type": "object" + }, + "PrivateEndpointConnection": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Resource properties." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Private endpoint connection resource.", + "x-ms-azure-resource": true, + "type": "object" + }, + "PrivateEndpointConnectionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The list of private endpoint connections." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of private endpoint connections." + } + }, + "description": "List of private endpoint connections.", + "type": "object" + }, + "PrivateEndpointConnectionProperties": { + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "Properties of the private endpoint object." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "Approval state of the private link connection." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "Provisioning state of the private endpoint connection." + } + }, + "description": "Properties of the private endpoint connection resource.", + "type": "object" + }, + "PrivateEndpoint": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Full identifier of the private endpoint resource." + } + }, + "description": "Private endpoint object properties.", + "type": "object" + }, + "PrivateLinkServiceConnectionState": { + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been approved, rejected or removed by the key vault owner." + }, + "description": { + "type": "string", + "description": "The reason for approval or rejection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer.", + "enum": [ + "None" + ], + "x-ms-enum": { + "name": "ActionsRequired", + "modelAsString": true + } + } + }, + "description": "An object that represents the approval state of the private link connection.", + "type": "object" + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Failed", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + } + }, + "PrivateLinkResourceListResult": { + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + }, + "description": "A list of private link resources", + "type": "object" + }, + "PrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A private link resource", + "type": "object" + }, + "PrivateLinkResourceProperties": { + "properties": { + "groupId": { + "description": "Group identifier of private link resource.", + "type": "string", + "readOnly": true + }, + "requiredMembers": { + "description": "Required member names of private link resource.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required DNS zone names of the the private link resource." + } + }, + "description": "Properties of a private link resource.", + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the resource group that contains the key vault.", + "x-ms-parameter-location": "method" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the key vault.", + "x-ms-parameter-location": "method" + }, + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the private endpoint connection associated with the key vault.", + "x-ms-parameter-location": "method" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/managedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/managedHsm.json new file mode 100644 index 000000000000..3a2bf70f14a0 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/managedHsm.json @@ -0,0 +1,1740 @@ +{ + "swagger": "2.0", + "info": { + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault.", + "version": "2024-11-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}": { + "put": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_CreateOrUpdate", + "x-ms-long-running-operation": true, + "description": "Create or update a managed HSM Pool in the specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "Parameters to create or update the managed HSM Pool" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "200": { + "description": "Created or updated managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Create a new managed HSM Pool or update an existing managed HSM Pool": { + "$ref": "./examples/ManagedHsm_CreateOrUpdate.json" + } + } + }, + "patch": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Update", + "x-ms-long-running-operation": true, + "description": "Update a managed HSM Pool in the specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "Parameters to patch the managed HSM Pool" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "200": { + "description": "Patched managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Update an existing managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Update.json" + } + } + }, + "delete": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Delete", + "x-ms-long-running-operation": true, + "description": "Deletes the specified managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the managed HSM Pool to delete" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "Request successful. Resource does not exist." + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "200": { + "description": "Delete successful." + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Delete a managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Delete.json" + } + } + }, + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Get", + "description": "Gets the specified managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "204": { + "description": "Request successful. Resource does not exist." + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Retrieve a managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListByResourceGroup", + "description": "The List operation gets information about the managed HSM Pools associated with the subscription and within the specified resource group.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified resource group.", + "schema": { + "$ref": "#/definitions/ManagedHsmListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List managed HSM Pools in a resource group": { + "$ref": "./examples/ManagedHsm_ListByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/managedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListBySubscription", + "description": "The List operation gets information about the managed HSM Pools associated with the subscription.", + "parameters": [ + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/ManagedHsmListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateEndpointConnections": { + "get": { + "tags": [ + "MHSMListPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_ListByResource", + "description": "The List operation gets information about the private endpoint connections associated with the managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionsListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedManagedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListDeleted", + "description": "The List operation gets information about the deleted managed HSMs associated with the subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about all managed HSMs in the specified subscription.", + "schema": { + "$ref": "#/definitions/DeletedManagedHsmListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List deleted managed HSMs in the specified subscription": { + "$ref": "./examples/DeletedManagedHsm_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_GetDeleted", + "description": "Gets the specified deleted managed HSM.", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the deleted managed HSM." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the deleted managed HSM." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about the specified deleted managed HSM.", + "schema": { + "$ref": "#/definitions/DeletedManagedHsm" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Retrieve a deleted managed HSM": { + "$ref": "./examples/DeletedManagedHsm_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}/purge": { + "post": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_PurgeDeleted", + "x-ms-long-running-operation": true, + "description": "Permanently deletes the specified managed HSM.", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the soft-deleted managed HSM." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the soft-deleted managed HSM." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Purge a managed HSM Pool": { + "$ref": "./examples/DeletedManagedHsm_Purge.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Get", + "description": "Gets the specified private endpoint connection associated with the managed HSM Pool.", + "x-ms-examples": { + "ManagedHsmGetPrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_getPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Private endpoint connection successfully returned.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + } + }, + "put": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Put", + "description": "Updates the specified private endpoint connection associated with the managed hsm pool.", + "x-ms-examples": { + "ManagedHsmPutPrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_putPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "properties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + }, + "description": "The intended state of private endpoint connection." + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The state of private endpoint connection was updated successfully.", + "headers": { + "Retry-After": { + "description": "(specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int32" + }, + "Azure-AsyncOperation": { + "description": "(specified only if operation does not finish synchronously) The URI to poll for completion status. The response of this URI may be synchronous or asynchronous.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Delete", + "x-ms-long-running-operation": true, + "description": "Deletes the specified private endpoint connection associated with the managed hsm pool.", + "x-ms-examples": { + "ManagedHsmDeletePrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_deletePrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The private endpoint connection was successfully deleted.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "202": { + "description": "The private endpoint connection is being deleted.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateLinkResources": { + "get": { + "tags": [ + "MHSMPrivateLinkResources" + ], + "operationId": "MHSMPrivateLinkResources_ListByMHSMResource", + "description": "Gets the private link resources supported for the managed hsm pool.", + "x-ms-examples": { + "KeyVaultListPrivateLinkResources": { + "$ref": "./examples/ManagedHsm_listPrivateLinkResources.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved private link resources.", + "schema": { + "$ref": "#/definitions/MHSMPrivateLinkResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/regions": { + "get": { + "tags": [ + "MHSMListRegions" + ], + "operationId": "MHSMRegions_ListByResource", + "description": "The List operation gets information about the regions associated with the managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/MHSMRegionsListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListRegionsByResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkMhsmNameAvailability": { + "post": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_CheckMhsmNameAvailability", + "description": "Checks that the managed hsm name is valid and is not already in use.", + "parameters": [ + { + "name": "mhsmName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckMhsmNameAvailabilityParameters" + }, + "description": "The name of the managed hsm." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK -- Operation to check the mhsm name availability was successful.", + "schema": { + "$ref": "#/definitions/CheckMhsmNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Validate a managed hsm name": { + "$ref": "./examples/ManagedHsm_checkMhsmNameAvailability.json" + } + }, + "produces": [ + "application/json" + ] + } + } + }, + "definitions": { + "ManagedHsmSku": { + "properties": { + "family": { + "type": "string", + "description": "SKU Family of the managed HSM Pool", + "enum": [ + "B", + "C" + ], + "x-ms-client-default": "B", + "x-ms-enum": { + "name": "ManagedHsmSkuFamily", + "modelAsString": true + } + }, + "name": { + "type": "string", + "description": "SKU of the managed HSM Pool", + "enum": [ + "Standard_B1", + "Custom_B32", + "Custom_B6", + "Custom_C42", + "Custom_C10" + ], + "x-ms-enum": { + "name": "ManagedHsmSkuName", + "modelAsString": false + } + } + }, + "description": "SKU details", + "required": [ + "name", + "family" + ], + "type": "object" + }, + "ManagedHsmProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool." + }, + "initialAdminObjectIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of initial administrators object ids for this managed hsm pool." + }, + "hsmUri": { + "type": "string", + "readOnly": true, + "description": "The URI of the managed hsm pool for performing operations on keys." + }, + "enableSoftDelete": { + "type": "boolean", + "default": true, + "description": "Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "default": 90, + "description": "Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90." + }, + "enablePurgeProtection": { + "type": "boolean", + "default": true, + "description": "Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible." + }, + "createMode": { + "type": "string", + "description": "The create mode to indicate whether the resource is being created or is being recovered from a deleted resource.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false, + "values": [ + { + "value": "recover", + "description": "Recover the managed HSM pool from a soft-deleted resource." + }, + { + "value": "default", + "description": "Create a new managed HSM pool. This is the default option." + } + ] + }, + "x-ms-mutability": [ + "create", + "update" + ] + }, + "statusMessage": { + "readOnly": true, + "type": "string", + "description": "Resource Status Message." + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Provisioning state.", + "enum": [ + "Succeeded", + "Provisioning", + "Failed", + "Updating", + "Deleting", + "Activated", + "SecurityDomainRestore", + "Restoring" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "value": "Succeeded", + "description": "The managed HSM Pool has been full provisioned." + }, + { + "value": "Provisioning", + "description": "The managed HSM Pool is currently being provisioned." + }, + { + "value": "Failed", + "description": "Provisioning of the managed HSM Pool has failed." + }, + { + "value": "Updating", + "description": "The managed HSM Pool is currently being updated." + }, + { + "value": "Deleting", + "description": "The managed HSM Pool is currently being deleted." + }, + { + "value": "Activated", + "description": "The managed HSM pool is ready for normal use." + }, + { + "value": "SecurityDomainRestore", + "description": "The managed HSM pool is waiting for a security domain restore action." + }, + { + "value": "Restoring", + "description": "The managed HSM pool is being restored from full HSM backup." + } + ] + } + }, + "networkAcls": { + "$ref": "#/definitions/MHSMNetworkRuleSet", + "description": "Rules governing the accessibility of the key vault from specific network locations." + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMGeoReplicatedRegion" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "List of all regions associated with the managed hsm pool." + }, + "privateEndpointConnections": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionItem" + }, + "description": "List of private endpoint connections associated with the managed hsm pool." + }, + "publicNetworkAccess": { + "description": "Control permission to the managed HSM from public networks.", + "enum": [ + "Enabled", + "Disabled" + ], + "default": "Enabled", + "type": "string", + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true + } + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purge date in UTC." + }, + "securityDomainProperties": { + "readOnly": true, + "$ref": "#/definitions/ManagedHSMSecurityDomainProperties", + "description": "Managed HSM security domain properties." + } + }, + "description": "Properties of the managed HSM Pool", + "type": "object" + }, + "ManagedHsm": { + "properties": { + "properties": { + "$ref": "#/definitions/ManagedHsmProperties", + "description": "Properties of the managed HSM" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "Resource information with extended details.", + "type": "object" + }, + "ManagedHsmResource": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The Azure Resource Manager resource ID for the managed HSM Pool." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the managed HSM Pool." + }, + "location": { + "type": "string", + "description": "The supported Azure location where the managed HSM Pool should be created.", + "x-ms-mutability": [ + "create", + "read" + ] + }, + "sku": { + "$ref": "#/definitions/ManagedHsmSku", + "description": "SKU details" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags" + }, + "systemData": { + "$ref": "common.json#/definitions/SystemData" + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity" + } + }, + "description": "Managed HSM resource", + "x-ms-azure-resource": true, + "type": "object" + }, + "ManagedHsmListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "The list of managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of managed HSM Pools", + "type": "object" + }, + "MHSMPrivateEndpointConnectionsListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + }, + "description": "The private endpoint connection associated with a managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of private endpoint connections associated with a managed HSM Pools", + "type": "object" + }, + "MHSMRegionsListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMGeoReplicatedRegion" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "The region associated with a managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of regions associated with a managed HSM Pools" + }, + "ManagedHsmError": { + "properties": { + "error": { + "readOnly": true, + "description": "The server error.", + "$ref": "#/definitions/Error" + } + }, + "description": "The error exception.", + "type": "object" + }, + "Error": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The error code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "The error message." + }, + "innererror": { + "x-ms-client-name": "innerError", + "readOnly": true, + "description": "The inner error, contains a more specific error code.", + "$ref": "#/definitions/Error" + } + }, + "description": "The server error.", + "type": "object" + }, + "DeletedManagedHsm": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The Azure Resource Manager resource ID for the deleted managed HSM Pool." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the managed HSM Pool." + }, + "properties": { + "$ref": "#/definitions/DeletedManagedHsmProperties", + "description": "Properties of the deleted managed HSM" + } + }, + "type": "object" + }, + "DeletedManagedHsmProperties": { + "properties": { + "mhsmId": { + "readOnly": true, + "type": "string", + "description": "The resource id of the original managed HSM." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The location of the original managed HSM." + }, + "deletionDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The deleted date." + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purged date." + }, + "purgeProtectionEnabled": { + "readOnly": true, + "type": "boolean", + "description": "Purge protection status of the original managed HSM." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags of the original managed HSM." + } + }, + "description": "Properties of the deleted managed HSM.", + "type": "object" + }, + "DeletedManagedHsmListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DeletedManagedHsm" + }, + "description": "The list of deleted managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted managed HSM Pools." + } + }, + "description": "List of deleted managed HSM Pools", + "type": "object" + }, + "MHSMGeoReplicatedRegion": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the geo replicated region." + }, + "provisioningState": { + "$ref": "#/definitions/MHSMGeoReplicationRegionProvisioningState", + "description": "Provisioning state of the geo replicated region." + }, + "isPrimary": { + "type": "boolean", + "description": "A boolean value that indicates whether the region is the primary region or a secondary region." + } + }, + "description": "A region that this managed HSM Pool has been extended to." + }, + "MHSMNetworkRuleSet": { + "properties": { + "bypass": { + "type": "string", + "description": "Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'.", + "enum": [ + "AzureServices", + "None" + ], + "x-ms-enum": { + "name": "NetworkRuleBypassOptions", + "modelAsString": true + } + }, + "defaultAction": { + "type": "string", + "description": "The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "NetworkRuleAction", + "modelAsString": true + } + }, + "ipRules": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMIPRule" + }, + "x-ms-identifiers": [ + "value" + ], + "description": "The list of IP address rules." + }, + "virtualNetworkRules": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMVirtualNetworkRule" + }, + "description": "The list of virtual network rules." + } + }, + "description": "A set of rules governing the network accessibility of a managed hsm pool.", + "type": "object" + }, + "MHSMIPRule": { + "properties": { + "value": { + "type": "string", + "description": "An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78)." + } + }, + "required": [ + "value" + ], + "description": "A rule governing the accessibility of a managed HSM pool from a specific IP address or IP range.", + "type": "object" + }, + "MHSMVirtualNetworkRule": { + "properties": { + "id": { + "type": "string", + "description": "Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'." + } + }, + "required": [ + "id" + ], + "description": "A rule governing the accessibility of a managed hsm pool from a specific virtual network.", + "type": "object" + }, + "MHSMPrivateEndpointConnectionItem": { + "properties": { + "id": { + "type": "string", + "description": "Id of private endpoint connection." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + }, + "properties": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Private endpoint connection properties." + } + }, + "description": "Private endpoint connection item.", + "type": "object" + }, + "MHSMPrivateEndpointConnection": { + "properties": { + "properties": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Resource properties." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "Private endpoint connection resource.", + "x-ms-azure-resource": true, + "type": "object" + }, + "MHSMPrivateEndpointConnectionProperties": { + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/MHSMPrivateEndpoint", + "description": "Properties of the private endpoint object." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/MHSMPrivateLinkServiceConnectionState", + "description": "Approval state of the private link connection." + }, + "provisioningState": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProvisioningState", + "description": "Provisioning state of the private endpoint connection." + } + }, + "description": "Properties of the private endpoint connection resource.", + "type": "object" + }, + "MHSMPrivateEndpoint": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Full identifier of the private endpoint resource." + } + }, + "description": "Private endpoint object properties.", + "type": "object" + }, + "MHSMPrivateLinkServiceConnectionState": { + "properties": { + "status": { + "$ref": "#/definitions/MHSMPrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been approved, rejected or removed by the key vault owner." + }, + "description": { + "type": "string", + "description": "The reason for approval or rejection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer.", + "enum": [ + "None" + ], + "x-ms-enum": { + "name": "ActionsRequired", + "modelAsString": true + } + } + }, + "description": "An object that represents the approval state of the private link connection.", + "type": "object" + }, + "MHSMPrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "MHSMPrivateEndpointConnectionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Failed", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + } + }, + "MHSMPrivateLinkResourceListResult": { + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/MHSMPrivateLinkResource" + } + } + }, + "description": "A list of private link resources", + "type": "object" + }, + "MHSMPrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/MHSMPrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "A private link resource", + "type": "object" + }, + "MHSMPrivateLinkResourceProperties": { + "properties": { + "groupId": { + "description": "Group identifier of private link resource.", + "type": "string", + "readOnly": true + }, + "requiredMembers": { + "description": "Required member names of private link resource.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required DNS zone names of the the private link resource." + } + }, + "description": "Properties of a private link resource.", + "type": "object" + }, + "MHSMGeoReplicationRegionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Preprovisioning", + "Provisioning", + "Succeeded", + "Failed", + "Deleting", + "Cleanup" + ], + "x-ms-enum": { + "name": "GeoReplicationRegionProvisioningState", + "modelAsString": true + } + }, + "CheckMhsmNameAvailabilityParameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The managed hsm name." + } + }, + "required": [ + "name" + ], + "description": "The parameters used to check the availability of the managed hsm name." + }, + "CheckMhsmNameAvailabilityResult": { + "type": "object", + "properties": { + "nameAvailable": { + "readOnly": true, + "type": "boolean", + "description": "A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used." + }, + "reason": { + "readOnly": true, + "type": "string", + "description": "The reason that a managed hsm name could not be used. The reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": true + } + }, + "message": { + "readOnly": true, + "type": "string", + "description": "An error message explaining the Reason value in more detail." + } + }, + "description": "The CheckMhsmNameAvailability operation response." + }, + "ManagedHSMSecurityDomainProperties": { + "type": "object", + "properties": { + "activationStatus": { + "readOnly": true, + "type": "string", + "description": "Activation Status", + "enum": [ + "Active", + "NotActivated", + "Unknown", + "Failed" + ], + "x-ms-enum": { + "name": "ActivationStatus", + "modelAsString": true, + "values": [ + { + "value": "Active", + "description": "The managed HSM Pool is active." + }, + { + "value": "NotActivated", + "description": "The managed HSM Pool is not yet activated." + }, + { + "value": "Unknown", + "description": "An unknown error occurred while activating managed hsm." + }, + { + "value": "Failed", + "description": "Failed to activate managed hsm." + } + ] + } + }, + "activationStatusMessage": { + "readOnly": true, + "type": "string", + "description": "Activation Status Message." + } + }, + "description": "The security domain properties of the managed hsm." + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + }, + "ManagedHsmResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the resource group that contains the managed HSM pool.", + "x-ms-parameter-location": "method" + }, + "MHSMPrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the private endpoint connection associated with the managed hsm pool.", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/providers.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/providers.json new file mode 100644 index 000000000000..c41109238d7b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/providers.json @@ -0,0 +1,288 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "paths": { + "/providers/Microsoft.KeyVault/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available Key Vault Rest API operations.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Lists available Rest API operations.": { + "$ref": "./examples/listOperations.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "OperationListResult": { + "description": "Result of the request to list Storage operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [], + "description": "List of Storage operations supported by the Storage resource provider." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of operations." + } + }, + "type": "object" + }, + "Operation": { + "description": "Key Vault REST API operation definition.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "description": "Display metadata associated with the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft Key Vault.", + "type": "string" + }, + "resource": { + "description": "Resource on which the operation is performed etc.", + "type": "string" + }, + "operation": { + "description": "Type of operation: get, read, delete, etc.", + "type": "string" + }, + "description": { + "description": "Description of operation.", + "type": "string" + } + } + }, + "origin": { + "type": "string", + "description": "The origin of operations." + }, + "properties": { + "description": "Properties of operation, include metric specifications.", + "x-ms-client-flatten": true, + "x-ms-client-name": "OperationProperties", + "$ref": "#/definitions/OperationProperties" + }, + "isDataAction": { + "type": "boolean", + "description": "Property to specify whether the action is a data action." + } + } + }, + "OperationProperties": { + "description": "Properties of operation, include metric specifications.", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ServiceSpecification", + "description": "One property of operation, include metric specifications." + } + }, + "type": "object" + }, + "ServiceSpecification": { + "description": "One property of operation, include log specifications.", + "properties": { + "logSpecifications": { + "description": "Log specifications of operation.", + "type": "array", + "items": { + "$ref": "#/definitions/LogSpecification" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "metricSpecifications": { + "description": "Metric specifications of operation.", + "type": "array", + "items": { + "$ref": "#/definitions/MetricSpecification" + }, + "x-ms-identifiers": [ + "name" + ] + } + }, + "type": "object" + }, + "LogSpecification": { + "description": "Log specification of operation.", + "properties": { + "name": { + "type": "string", + "description": "Name of log specification." + }, + "displayName": { + "type": "string", + "description": "Display name of log specification." + }, + "blobDuration": { + "type": "string", + "description": "Blob duration of specification." + } + }, + "type": "object" + }, + "MetricSpecification": { + "description": "Metric specification of operation.", + "properties": { + "name": { + "type": "string", + "description": "Name of metric specification." + }, + "displayName": { + "type": "string", + "description": "Display name of metric specification." + }, + "displayDescription": { + "type": "string", + "description": "Display description of metric specification." + }, + "unit": { + "type": "string", + "description": "The metric unit. Possible values include: 'Bytes', 'Count', 'Milliseconds'." + }, + "aggregationType": { + "type": "string", + "description": "The metric aggregation type. Possible values include: 'Average', 'Count', 'Total'." + }, + "supportedAggregationTypes": { + "type": "array", + "description": "The supported aggregation types for the metrics.", + "items": { + "type": "string" + } + }, + "supportedTimeGrainTypes": { + "type": "array", + "description": "The supported time grain types for the metrics.", + "items": { + "type": "string" + } + }, + "lockAggregationType": { + "type": "string", + "description": "The metric lock aggregation type." + }, + "dimensions": { + "type": "array", + "description": "The dimensions of metric", + "items": { + "$ref": "#/definitions/DimensionProperties" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "fillGapWithZero": { + "type": "boolean", + "description": "Property to specify whether to fill gap with zero." + }, + "internalMetricName": { + "type": "string", + "description": "The internal metric name." + } + }, + "type": "object" + }, + "DimensionProperties": { + "description": "Type of operation: get, read, delete, etc.", + "properties": { + "name": { + "type": "string", + "description": "Name of dimension." + }, + "displayName": { + "type": "string", + "description": "Display name of dimension." + }, + "toBeExportedForShoebox": { + "type": "boolean", + "description": "Property to specify whether the dimension should be exported for Shoebox." + } + }, + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/secrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/secrets.json new file mode 100644 index 000000000000..ed2fdc267039 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/stable/2024-11-01/secrets.json @@ -0,0 +1,491 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-11-01", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{secretName}": { + "put": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_CreateOrUpdate", + "description": "Create or update a secret in a key vault in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "Name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecretCreateOrUpdateParameters" + }, + "description": "Parameters to create or update the secret" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "200": { + "description": "Created or updated secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a secret": { + "$ref": "./examples/createSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "patch": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_Update", + "description": "Update a secret in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "Name of the secret" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecretPatchParameters" + }, + "description": "Parameters to patch the secret" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Patched secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "200": { + "description": "Patched secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Update a secret": { + "$ref": "./examples/updateSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_Get", + "description": "Gets the specified secret. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the secret." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a secret": { + "$ref": "./examples/getSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets": { + "get": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_List", + "description": "The List operation gets information about the secrets in a vault. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about secrets in the specified vault.", + "schema": { + "$ref": "#/definitions/SecretListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List secrets in the vault": { + "$ref": "./examples/listSecrets.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "Attributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "unixtime", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "unixtime", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "unixtime", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "unixtime", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + } + }, + "description": "The object attributes managed by the KeyVault service.", + "type": "object" + }, + "SecretProperties": { + "properties": { + "value": { + "type": "string", + "description": "The value of the secret. NOTE: 'value' will never be returned from the service, as APIs using this model are is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The attributes of the secret." + }, + "secretUri": { + "type": "string", + "description": "The URI to retrieve the current version of the secret.", + "readOnly": true + }, + "secretUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the secret.", + "readOnly": true + } + }, + "description": "Properties of the secret", + "type": "object" + }, + "SecretPatchProperties": { + "properties": { + "value": { + "type": "string", + "description": "The value of the secret." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The attributes of the secret." + } + }, + "description": "Properties of the secret", + "type": "object" + }, + "SecretAttributes": { + "allOf": [ + { + "$ref": "#/definitions/Attributes" + } + ], + "description": "The secret management attributes.", + "type": "object" + }, + "SecretCreateOrUpdateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the secret. " + }, + "properties": { + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret" + } + }, + "description": "Parameters for creating or updating a secret", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "SecretPatchParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the secret. " + }, + "properties": { + "$ref": "#/definitions/SecretPatchProperties", + "description": "Properties of the secret" + } + }, + "description": "Parameters for patching a secret", + "x-ms-azure-resource": true, + "type": "object" + }, + "Secret": { + "properties": { + "properties": { + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "./keyvault.json#/definitions/Resource" + } + ], + "description": "Resource information with extended details.", + "type": "object" + }, + "SecretListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + }, + "description": "The list of secrets." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of secrets." + } + }, + "description": "List of secrets", + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/readme.md b/specification/keyvault/resource-manager/readme.md index fae54df7a2ee..492452774df3 100644 --- a/specification/keyvault/resource-manager/readme.md +++ b/specification/keyvault/resource-manager/readme.md @@ -26,7 +26,22 @@ These are the global settings for the KeyVault API. ``` yaml openapi-type: arm -tag: package-2023-07 +tag: package-2024-11-01 +``` + +### Tag: package-2024-11-01 + +These settings apply only when `--tag=package-2024-11-01` is specified on the command line. + +```yaml $(tag) == 'package-2024-11-01' +input-file: + - Microsoft.KeyVault/stable/2024-11-01/common.json + - Microsoft.KeyVault/stable/2024-11-01/keys.json + - Microsoft.KeyVault/stable/2024-11-01/keysManagedHsm.json + - Microsoft.KeyVault/stable/2024-11-01/keyvault.json + - Microsoft.KeyVault/stable/2024-11-01/managedHsm.json + - Microsoft.KeyVault/stable/2024-11-01/providers.json + - Microsoft.KeyVault/stable/2024-11-01/secrets.json ``` ### Tag: package-preview-2024-04 @@ -281,7 +296,7 @@ directive: - R3026 # The 'PrivateEndpointConnection' and 'PrivateLinkResource' sub-resources don't define PATCH as per Network Team's specification. - R3025 # The 'PrivateLinkResource' is only accessible via List operation; does not define GET as per Network Team's specification. - R4015 # The 'MHSMPrivateEndpointConnection' sub-resource doesn't define List as per Network Team's specification. - - R2005 # The 'ManagedHsms_PurgeDeleted' operation should not return a mix of 202 and syncronous return types (200, 201, 204) as directed by SDK team. + - R2005 # The 'ManagedHsms_PurgeDeleted' operation should not return a mix of 202 and synchronous return types (200, 201, 204) as directed by SDK team. - R4009 # Vault object is the only one that need to be tracked with SystemData - suppress: DefinitionsPropertiesNamesCamelCase From 4ae5cdc221660762336d5a899495b2b4941ea486 Mon Sep 17 00:00:00 2001 From: Fernando Rauseo <73549810+FRL200@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:18:16 -0500 Subject: [PATCH 20/82] Release keyvault microsoft.key vault preview/2024 12 01 preview (#31796) * Copy files from preview/2024-04-01-preview Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to preview/2024-12-01-preview Updated the API version from preview/2024-04-01-preview to preview/2024-12-01-preview. * Added tag for 2024-12-01-preview in readme file * Added Azure Managed HSM C SKUs to preview version (#31733) * Update managedHsm.json * Update managedHsm.json * Changes to update default values and description and prettier ran (#31718) Co-authored-by: Fernando Rauseo Landa * Update readme * misc fix * update tag * resolve ci issue * fixed typos and override words --------- Co-authored-by: Fernando Rauseo Landa Co-authored-by: Daniel Cherrett <49488952+Cherrett@users.noreply.github.com> Co-authored-by: Chenjie Shi --- cSpell.json | 6 + .../preview/2024-12-01-preview/common.json | 94 + .../examples/DeletedManagedHsm_Get.json | 28 + .../examples/DeletedManagedHsm_List.json | 47 + .../examples/DeletedManagedHsm_Purge.json | 15 + .../examples/ManagedHsm_CreateOrUpdate.json | 89 + .../examples/ManagedHsm_Delete.json | 17 + .../examples/ManagedHsm_Get.json | 39 + .../ManagedHsm_ListByResourceGroup.json | 68 + .../ManagedHsm_ListBySubscription.json | 67 + ...tPrivateEndpointConnectionsByResource.json | 51 + .../ManagedHsm_ListRegionsByResource.json | 27 + .../examples/ManagedHsm_Update.json | 78 + .../ManagedHsm_checkMhsmNameAvailability.json | 16 + ...edHsm_deletePrivateEndpointConnection.json | 27 + ...nagedHsm_getPrivateEndpointConnection.json | 30 + .../ManagedHsm_listPrivateLinkResources.json | 30 + ...nagedHsm_putPrivateEndpointConnection.json | 37 + .../examples/checkVaultNameAvailability.json | 17 + .../examples/createKey.json | 53 + .../examples/createSecret.json | 50 + .../examples/createVault.json | 273 ++ .../examples/createVaultWithNetworkAcls.json | 132 + .../deletePrivateEndpointConnection.json | 28 + .../examples/deleteVault.json | 16 + .../examples/getDeletedVault.json | 26 + .../2024-12-01-preview/examples/getKey.json | 48 + .../examples/getKeyVersion.json | 49 + ...rityPerimeterAssociationConfiguration.json | 89 + .../getPrivateEndpointConnection.json | 33 + .../examples/getSecret.json | 28 + .../2024-12-01-preview/examples/getVault.json | 93 + .../examples/listDeletedVaults.json | 29 + .../examples/listKeyVersions.json | 58 + .../2024-12-01-preview/examples/listKeys.json | 55 + ...rityPerimeterAssociationConfiguration.json | 92 + .../examples/listOperations.json | 332 +++ .../listPrivateEndpointConnection.json | 51 + .../examples/listPrivateLinkResources.json | 30 + .../examples/listSecrets.json | 46 + .../examples/listVault.json | 24 + .../examples/listVaultByResourceGroup.json | 98 + .../examples/listVaultBySubscription.json | 97 + .../examples/managedHsmCreateKey.json | 52 + .../examples/managedHsmGetKey.json | 47 + .../examples/managedHsmGetKeyVersion.json | 48 + .../examples/managedHsmListKeyVersions.json | 56 + .../examples/managedHsmListKeys.json | 53 + .../examples/purgeDeletedVault.json | 18 + .../putPrivateEndpointConnection.json | 39 + .../examples/updateAccessPoliciesAdd.json | 82 + .../examples/updateSecret.json | 50 + .../examples/updateVault.json | 271 ++ .../preview/2024-12-01-preview/keys.json | 672 +++++ .../2024-12-01-preview/keysManagedHsm.json | 651 +++++ .../preview/2024-12-01-preview/keyvault.json | 2189 +++++++++++++++++ .../2024-12-01-preview/managedHsm.json | 1740 +++++++++++++ .../preview/2024-12-01-preview/providers.json | 288 +++ .../preview/2024-12-01-preview/secrets.json | 491 ++++ .../keyvault/resource-manager/readme.go.md | 2 + .../keyvault/resource-manager/readme.md | 15 + 61 files changed, 9377 insertions(+) create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/common.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Get.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_List.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Purge.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_CreateOrUpdate.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Delete.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Get.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListByResourceGroup.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListBySubscription.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListRegionsByResource.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Update.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_checkMhsmNameAvailability.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_deletePrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_getPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_listPrivateLinkResources.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_putPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/checkVaultNameAvailability.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVaultWithNetworkAcls.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deletePrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deleteVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getDeletedVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKeyVersion.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getNetworkSecurityPerimeterAssociationConfiguration.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listDeletedVaults.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeyVersions.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listNetworkSecurityPerimeterAssociationConfiguration.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listOperations.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateLinkResources.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listSecrets.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultByResourceGroup.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultBySubscription.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmCreateKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKey.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKeyVersion.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeyVersions.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/purgeDeletedVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/putPrivateEndpointConnection.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateAccessPoliciesAdd.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateSecret.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateVault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keys.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keysManagedHsm.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keyvault.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/managedHsm.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/providers.json create mode 100644 specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/secrets.json diff --git a/cSpell.json b/cSpell.json index d3b7119221a9..28b0332d4e25 100644 --- a/cSpell.json +++ b/cSpell.json @@ -414,6 +414,12 @@ "Regenerte" ] }, + { + "filename": "**/specification/keyvault/resource-manager/readme.go.md", + "words": [ + "modelerfour" + ] + }, { "filename": "**/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json", "words": [ diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/common.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/common.json new file mode 100644 index 000000000000..e7afbdc1e7ce --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/common.json @@ -0,0 +1,94 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "paths": {}, + "definitions": { + "CloudError": { + "description": "An error response from Key Vault resource provider", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody" + } + }, + "x-ms-external": true, + "type": "object" + }, + "CloudErrorBody": { + "description": "An error response from Key Vault resource provider", + "properties": { + "code": { + "type": "string", + "description": "Error code. This is a mnemonic that can be consumed programmatically." + }, + "message": { + "type": "string", + "description": "User friendly error message. The message is typically localized and may vary with service version." + } + }, + "x-ms-external": true, + "type": "object" + }, + "SystemData": { + "description": "Metadata pertaining to creation and last modification of the key vault resource.", + "readOnly": true, + "properties": { + "createdBy": { + "type": "string", + "description": "The identity that created the key vault resource." + }, + "createdByType": { + "description": "The type of identity that created the key vault resource.", + "$ref": "#/definitions/IdentityType" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the key vault resource creation (UTC)." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the key vault resource." + }, + "lastModifiedByType": { + "description": "The type of identity that last modified the key vault resource.", + "$ref": "#/definitions/IdentityType" + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of the key vault resource last modification (UTC)." + } + }, + "type": "object" + }, + "IdentityType": { + "type": "string", + "description": "The type of identity.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "identityType", + "modelAsString": true + } + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Get.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Get.json new file mode 100644 index 000000000000..123cfe9914ab --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Get.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "name": "hsm1", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm1", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_List.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_List.json new file mode 100644 index 000000000000..11c1f89932d0 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_List.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm1", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedManagedHSMs/hsm2", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedManagedHSMs", + "properties": { + "mhsmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "location": "westus", + "deletionDate": "2021-04-01T00:00:59Z", + "scheduledPurgeDate": "2021-04-01T00:00:59Z", + "purgeProtectionEnabled": true, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedManagedHSMs?api-version=2024-12-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Purge.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Purge.json new file mode 100644 index 000000000000..bfe66622ad60 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/DeletedManagedHsm_Purge.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "name": "hsm1", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_CreateOrUpdate.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_CreateOrUpdate.json new file mode 100644 index 000000000000..429a4a8352aa --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_CreateOrUpdate.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false + }, + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + }, + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": null, + "provisioningState": "Provisioning", + "statusMessage": "Allocating hardware" + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Delete.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Delete.json new file mode 100644 index 000000000000..2d4e85380bb0 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Get.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Get.json new file mode 100644 index 000000000000..e316a28eb43e --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListByResourceGroup.json new file mode 100644 index 000000000000..dd3002d6c815 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListByResourceGroup.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + }, + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm2.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "name": "hsm2", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs?api-version=2024-12-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListBySubscription.json new file mode 100644 index 000000000000..8b1b8f0a1da6 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListBySubscription.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood" + } + }, + { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm2.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm2", + "name": "hsm2", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "production" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/managedHSMs?api-version=2024-12-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json new file mode 100644 index 000000000000..2df09a55f6e4 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec1", + "name": "sample-pec1", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe1" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec2", + "name": "sample-pec2", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe2" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListRegionsByResource.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListRegionsByResource.json new file mode 100644 index 000000000000..ed9b825bd8e0 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_ListRegionsByResource.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sample-region1", + "provisioningState": "Succeeded", + "isPrimary": true + }, + { + "name": "sample-region2", + "provisioningState": "Succeeded", + "isPrimary": false + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Update.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Update.json new file mode 100644 index 000000000000..a9f791095ad6 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_Update.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "resourceGroupName": "hsm-group", + "name": "hsm1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Succeeded", + "statusMessage": "ManagedHsm is functional." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/managedHsmOperationResults/00000000-0000-0000-0000-000000000000" + }, + "body": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "initialAdminObjectIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "enableSoftDelete": true, + "softDeleteRetentionInDays": 90, + "enablePurgeProtection": false, + "hsmUri": "https://westus.hsm1.managedhsm.azure.net", + "provisioningState": "Updating", + "statusMessage": "ManagedHsm is updating." + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.KeyVault/managedHSMs/hsm1", + "name": "hsm1", + "type": "Microsoft.KeyVault/managedHSMs", + "location": "westus", + "sku": { + "family": "B", + "name": "Standard_B1" + }, + "tags": { + "Dept": "hsm", + "Environment": "dogfood", + "Slice": "A" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_checkMhsmNameAvailability.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_checkMhsmNameAvailability.json new file mode 100644 index 000000000000..6fb4aaee55d7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_checkMhsmNameAvailability.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "mhsmName": { + "name": "sample-mhsm" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_deletePrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_deletePrivateEndpointConnection.json new file mode 100644 index 000000000000..b089ab676eb2 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_deletePrivateEndpointConnection.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "properties": { + "provisioningState": "Disconnected" + } + } + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec?operationid=25334578" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_getPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_getPrivateEndpointConnection.json new file mode 100644 index 000000000000..3f76662c6d05 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_getPrivateEndpointConnection.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_listPrivateLinkResources.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_listPrivateLinkResources.json new file mode 100644 index 000000000000..94b08930725c --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_listPrivateLinkResources.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateLinkResources/managedhsm", + "name": "managedhsm", + "type": "Microsoft.KeyVault/managedhsms/privateLinkResources", + "properties": { + "groupId": "managedhsms", + "requiredMembers": [ + "default" + ], + "requiredZoneNames": [ + "privatelink.managedhsm.azure.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_putPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_putPrivateEndpointConnection.json new file mode 100644 index 000000000000..266de1a63ff2 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/ManagedHsm_putPrivateEndpointConnection.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-mhsm", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this." + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedhsms/sample-mhsm/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/managedhsms/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this.", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/checkVaultNameAvailability.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/checkVaultNameAvailability.json new file mode 100644 index 000000000000..43c23ffea80d --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/checkVaultNameAvailability.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "vaultName": { + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createKey.json new file mode 100644 index 000000000000..864ae4035f4c --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createKey.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "kty": "RSA" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createSecret.json new file mode 100644 index 000000000000..4fee16ebdad8 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createSecret.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "value": "secret-value" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514938738, + "updated": 1514938738 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514938738, + "updated": 1514938738 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https:/sample-vault.vault.azure.net/secrets/secret-name/baf6de32c4774c7c81345f6476cf90a4" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVault.json new file mode 100644 index 000000000000..b23f4e16c40a --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVault.json @@ -0,0 +1,273 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "location": "westus", + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "publicNetworkAccess": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [ + { + "value": "" + } + ], + "virtualNetworkRules": [ + { + "id": "", + "ignoreMissingVnetServiceEndpoint": false + } + ] + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "privateEndpointConnections": [ + { + "id": "", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "actionsRequired": "None" + } + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVaultWithNetworkAcls.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVaultWithNetworkAcls.json new file mode 100644 index 000000000000..051f2ac62ca2 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/createVaultWithNetworkAcls.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "location": "westus", + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91/32" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "defaultAction": "Deny", + "bypass": "AzureServices", + "ipRules": [ + { + "value": "124.56.78.91/32" + }, + { + "value": "'10.91.4.0/24'" + } + ], + "virtualNetworkRules": [ + { + "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1" + } + ] + }, + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deletePrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deletePrivateEndpointConnection.json new file mode 100644 index 000000000000..a32f717c643e --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deletePrivateEndpointConnection.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "properties": { + "provisioningState": "Disconnected" + } + } + }, + "202": { + "headers": { + "Retry-After": "60", + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec?operationid=25334578" + } + }, + "204": {} + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deleteVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deleteVault.json new file mode 100644 index 000000000000..b29fd98d4011 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/deleteVault.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getDeletedVault.json new file mode 100644 index 000000000000..1fdd23d30ee8 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getDeletedVault.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "vaultName": "sample-vault", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/deletedVaults", + "properties": { + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "location": "westus", + "tags": {}, + "deletionDate": "2017-01-01T00:00:59Z", + "scheduledPurgeDate": "2017-04-01T00:00:59Z", + "purgeProtectionEnabled": true + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKey.json new file mode 100644 index 000000000000..49e00c0d9429 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKey.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKeyVersion.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKeyVersion.json new file mode 100644 index 000000000000..2fc8998fe536 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getKeyVersion.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "keyVersion": "fd618d9519b74f9aae94ade66b876acc", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/fd618d9519b74f9aae94ade66b876acc", + "name": "fd618d9519b74f9aae94ade66b876acc", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getNetworkSecurityPerimeterAssociationConfiguration.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getNetworkSecurityPerimeterAssociationConfiguration.json new file mode 100644 index 000000000000..1c6b7e989863 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getNetworkSecurityPerimeterAssociationConfiguration.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2022-02-01-preview", + "associationProxy": "sample-association-name" + }, + "responses": { + "200": { + "body": { + "name": "0838c45c-28cb-4328-b120-8feb4a7e8699.sample-vault-eaa00d67-42fa-449a-a43f-0635227f6940", + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/networkSecurityPerimeterConfigurations/0838c45c-28cb-4328-b120-8feb4a7e8699.sample-vault-name-eaa00d67-42fa-449a-a43f-0635227f6940", + "type": "Microsoft.KeyVault/vaults/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Succeeded", + "networkSecurityPerimeter": { + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958/resourcegroups/sample-group/providers/microsoft.network/networksecurityperimeters/sample-perimeter", + "perimeterGuid": "0838c45c-28cb-4328-b120-8feb4a7e8699", + "location": "centraluseuap" + }, + "resourceAssociation": { + "name": "sample-vault-name-eaa00d67-42fa-449a-a43f-0635227f6940", + "accessMode": "Learning" + }, + "profile": { + "name": "sample-profile", + "accessRulesVersion": 1, + "accessRules": [ + { + "name": "ipRules", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "148.1.0.0/16" + ], + "fullyQualifiedDomainNames": [], + "subscriptions": [], + "networkSecurityPerimeters": [] + } + }, + { + "name": "subscriptionId", + "properties": { + "direction": "Inbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [], + "subscriptions": [ + { + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958" + } + ], + "networkSecurityPerimeters": [] + } + }, + { + "name": "fqdn", + "properties": { + "direction": "Outbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [ + "www.contoso.com" + ], + "subscriptions": [], + "networkSecurityPerimeters": [] + } + } + ], + "diagnosticSettingsVersion": 0, + "enabledLogCategories": [ + "category1", + "category2" + ] + } + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getPrivateEndpointConnection.json new file mode 100644 index 000000000000..e6b036be3940 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getPrivateEndpointConnection.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + }, + "204": { + "headers": {} + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getSecret.json new file mode 100644 index 000000000000..cb4acf2047c8 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getSecret.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940950, + "updated": 1514940950 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/77445834f7de41bab81d0723bf996860" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getVault.json new file mode 100644 index 000000000000..43456ac9da55 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/getVault.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listDeletedVaults.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listDeletedVaults.json new file mode 100644 index 000000000000..429a73150aa7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listDeletedVaults.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/locations/westus/deletedVaults/sample-vault", + "name": "vault-agile-drawer-6404", + "type": "Microsoft.KeyVault/deletedVaults", + "properties": { + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "location": "westus", + "tags": {}, + "deletionDate": "2017-01-01T00:00:59Z", + "scheduledPurgeDate": "2017-04-01T00:00:59Z", + "purgeProtectionEnabled": true + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/deletedVaults?api-version=2024-12-01-preview&%24skiptoken=HY3RaoMwAEX%2fRcbeYhJrnRXKYNWOuqpME0sfNcYui0Yxade19N8ne7hcDlzOvVuKX81eKKmt4G4dooLQwgqsL2NGHUDYV6o68Z4rY1e388RtNvRQn2vNJjEaMSgNvcbneMUcsKg8BFwft8DndQ0w9hu2QOiFLRs4TsNFNHzSMBFsGvTQGvuD%2f5bVuTOw4R03vPkH%2fVqNAlzm5SxfOwh7ACOA8POTlvPjILlaU1ke8jImOc23JCppQVfZnna0DXc4ISc3vSVuRo5zJE6%2bj25C3vwk2v2kEV2mMn7PyOc1DbtNGkonnzuLym1G400uI5QRZj0efw%3d%3d" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeyVersions.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeyVersions.json new file mode 100644 index 000000000000..1594f7c46376 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeyVersions.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/c2296aa24acf4daf86942bff5aca73dd", + "name": "c2296aa24acf4daf86942bff5aca73dd", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641074, + "updated": 1598641074, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/c2296aa24acf4daf86942bff5aca73dd" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name/versions/d5a04667b6f44b0ca62825f5eae93da6", + "name": "d5a04667b6f44b0ca62825f5eae93da6", + "type": "Microsoft.KeyVault/vaults/keys/versions", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641295, + "updated": 1598641295, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name/d5a04667b6f44b0ca62825f5eae93da6" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeys.json new file mode 100644 index 000000000000..78333ef16956 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listKeys.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-1", + "name": "sample-key-name-1", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493796, + "updated": 1596493796, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-1" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/keys/sample-key-name-2", + "name": "sample-key-name-2", + "type": "Microsoft.KeyVault/vaults/keys", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493797, + "updated": 1596493797, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-vault-name.vault.azure.net:443/keys/sample-key-name-2" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listNetworkSecurityPerimeterAssociationConfiguration.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listNetworkSecurityPerimeterAssociationConfiguration.json new file mode 100644 index 000000000000..4805c1c90a90 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listNetworkSecurityPerimeterAssociationConfiguration.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault-name", + "keyName": "sample-key-name", + "api-version": "2022-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "0838c45c-28cb-4328-b120-8feb4a7e8699.sample-vault-eaa00d67-42fa-449a-a43f-0635227f6940", + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault-name/networkSecurityPerimeterConfigurations/0838c45c-28cb-4328-b120-8feb4a7e8699.sample-vault-name-eaa00d67-42fa-449a-a43f-0635227f6940", + "type": "Microsoft.KeyVault/vaults/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Succeeded", + "networkSecurityPerimeter": { + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958/resourcegroups/sample-group/providers/microsoft.network/networksecurityperimeters/sample-perimeter", + "perimeterGuid": "0838c45c-28cb-4328-b120-8feb4a7e8699", + "location": "centraluseuap" + }, + "resourceAssociation": { + "name": "sample-vault-name-eaa00d67-42fa-449a-a43f-0635227f6940", + "accessMode": "Learning" + }, + "profile": { + "name": "sample-profile", + "accessRulesVersion": 1, + "accessRules": [ + { + "name": "ipRules", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "148.1.0.0/16" + ], + "fullyQualifiedDomainNames": [], + "subscriptions": [], + "networkSecurityPerimeters": [] + } + }, + { + "name": "subscriptionId", + "properties": { + "direction": "Inbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [], + "subscriptions": [ + { + "id": "/subscriptions/7331e83f-5157-4da5-bc69-75eac9c13958" + } + ], + "networkSecurityPerimeters": [] + } + }, + { + "name": "fqdn", + "properties": { + "direction": "Outbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [ + "www.contoso.com" + ], + "subscriptions": [], + "networkSecurityPerimeters": [] + } + } + ], + "diagnosticSettingsVersion": 0, + "enabledLogCategories": [ + "category1", + "category2" + ] + } + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listOperations.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listOperations.json new file mode 100644 index 000000000000..3701451a724d --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listOperations.json @@ -0,0 +1,332 @@ +{ + "parameters": { + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.KeyVault/vaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "View Key Vault", + "description": "View the properties of a key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Update Key Vault", + "description": "Create a new key vault or update the properties of an existing key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Delete Key Vault", + "description": "Delete a key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/deploy/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault", + "operation": "Use Vault for Azure Deployments", + "description": "Enables access to secrets in a key vault when deploying Azure resources" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/secrets/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Secret", + "operation": "View Secret Properties", + "description": "View the properties of a secret, but not its value" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/secrets/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Secret", + "operation": "Update Secret", + "description": "Create a new secret or update the value of an existing secret" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/vaults/accessPolicies/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Access Policy", + "operation": "Update Access Policy", + "description": "Update an existing access policy by merging or replacing, or add a new access policy to a vault." + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Log Definition", + "operation": "Read log definition", + "description": "Gets the available logs for a key vault" + }, + "isDataAction": false, + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "AuditEvent", + "displayName": "Audit Logs", + "blobDuration": "PT1H" + } + ], + "metricSpecifications": [ + { + "name": "ServiceApiHit", + "displayName": "", + "displayDescription": "", + "unit": "", + "aggregationType": "", + "supportedAggregationTypes": [ + "" + ], + "supportedTimeGrainTypes": [ + "" + ], + "lockAggregationType": "", + "dimensions": [ + { + "name": "ActivityType", + "displayName": "", + "toBeExportedForShoebox": true + }, + { + "name": "ActivityName", + "displayName": "", + "toBeExportedForShoebox": true + } + ], + "fillGapWithZero": false, + "internalMetricName": "AuditEvent" + } + ] + } + } + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Diagnostic Settings", + "operation": "Read diagnostic setting", + "description": "Gets the diagnostic setting for the resource" + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/diagnosticSettings/Write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Diagnostic Settings", + "operation": "Write diagnostic setting", + "description": "Creates or updates the diagnostic setting for the resource" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/register/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Subscription", + "operation": "Register Subscription", + "description": "Registers a subscription" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/unregister/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Subscription", + "operation": "Unregister Subscription", + "description": "Unregisters a subscription" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/operations/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Operations", + "operation": "Available Key Vault Operations", + "description": "Lists operations available on Microsoft.KeyVault resource provider" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/checkNameAvailability/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Name Availability", + "operation": "Check Name Availability", + "description": "Checks that a key vault name is valid and is not in use" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/deletedVaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "View Soft Deleted Vaults", + "description": "View the properties of soft deleted key vaults" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/deletedVaults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "View Soft Deleted Key Vault", + "description": "View the properties of a soft deleted key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/deletedVaults/purge/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Soft Deleted Key Vault", + "operation": "Purge Soft Deleted Key Vault", + "description": "Purge a soft deleted key vault" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/locations/operationResults/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Long Run Operation Result", + "operation": "Check Operation Result", + "description": "Check the result of a long run operation" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "View HSM pool", + "description": "View the properties of an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Create or Update HSM pool", + "description": "Create a new HSM pool of update the properties of an existing HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Delete HSM pool", + "description": "Delete an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/hsmPools/joinVault/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "HSM pool", + "operation": "Join KeyVault to HSM pool", + "description": "Join a key vault to an HSM pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "View Managed HSM", + "description": "View the properties of a Managed HSM" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/write", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "Create or Update Managed HSM", + "description": "Create a new Managed HSM of update the properties of an existing Managed HSM" + }, + "isDataAction": false + }, + { + "name": "Microsoft.KeyVault/managedHSMs/delete", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Managed HSM", + "operation": "Delete Managed HSM", + "description": "Delete a Managed HSM" + }, + "isDataAction": false + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/vaults/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Key Vault Metric Definition", + "operation": "Read metric definition", + "description": "Gets the available metrics for a key vault" + }, + "isDataAction": false, + "properties": { + "serviceSpecification": {} + } + }, + { + "origin": "system", + "name": "Microsoft.KeyVault/locations/deleteVirtualNetworkOrSubnets/action", + "display": { + "provider": "Microsoft Key Vault", + "resource": "Location", + "operation": "Modify Network ACLs containing the deleted Vitual Network or Subnet ", + "description": "Notifies Microsoft.KeyVault that a virtual network or subnet is being deleted" + }, + "isDataAction": false + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateEndpointConnection.json new file mode 100644 index 000000000000..5ec3fe4b3938 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateEndpointConnection.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "This was automatically approved by user1234@contoso.com", + "actionsRequired": "None" + } + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateLinkResources.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateLinkResources.json new file mode 100644 index 000000000000..aa38ea00fb5b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listPrivateLinkResources.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateLinkResources/vault", + "name": "vault", + "type": "Microsoft.KeyVault/vaults/privateLinkResources", + "properties": { + "groupId": "vault", + "requiredMembers": [ + "default" + ], + "requiredZoneNames": [ + "privatelink.vaultcore.azure.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listSecrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listSecrets.json new file mode 100644 index 000000000000..d701be494735 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listSecrets.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514941476, + "updated": 1514941476 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/40af42fbc10047f8a756a73211492f56" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name2", + "name": "secret-name2", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514941476, + "updated": 1514941476 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name2", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name2/cd7264a6f56c44d1b594423c80609aae" + } + } + ] + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVault.json new file mode 100644 index 000000000000..3397baaa9f83 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVault.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "$filter": "resourceType eq 'Microsoft.KeyVault/vaults'", + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2015-11-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {} + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?%24filter=resourceType+eq+%27Microsoft.KeyVault%2fvaults%27&%24top=4&api-version=2015-11-01&%24skiptoken=eyJuZXh0UGFydGl0aW9uS2V5IjoiMSE4IVEwTTJNVGMtIiwibmV4dFJvd0tleSI6IjEhMTMyIU5rUTRSVEU1UXpJelFUWXdORGd4UmpoRlFrSXhNVGhFUXpNd01EZEROVVJmVkVkT1RDMU5TVU5TVDFOUFJsUTZNa1ZMUlZsV1FWVk1WRG95UmxaQlZVeFVVeTFUVTFKSExVcEpUVG95UkZSRlUxUTZNa1JXUVZWTVZDMVhSVk5VVlZNLSJ9" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultByResourceGroup.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultByResourceGroup.json new file mode 100644 index 000000000000..0d81f0486b49 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultByResourceGroup.json @@ -0,0 +1,98 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "premium" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "enableSoftDelete": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net/", + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults?api-version=2024-12-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultBySubscription.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultBySubscription.json new file mode 100644 index 000000000000..051c1bd883ab --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/listVaultBySubscription.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "$top": 1, + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "premium" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "enableSoftDelete": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net/", + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resources?api-version=22024-12-01-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmCreateKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmCreateKey.json new file mode 100644 index 000000000000..e9c2f53885b7 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmCreateKey.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "kty": "RSA" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKey.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKey.json new file mode 100644 index 000000000000..16cb0fab51b6 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKey.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name", + "name": "sample-key-name", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKeyVersion.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKeyVersion.json new file mode 100644 index 000000000000..178e810ee0b3 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmGetKeyVersion.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "keyVersion": "fd618d9519b74f9aae94ade66b876acc", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/fd618d9519b74f9aae94ade66b876acc", + "name": "fd618d9519b74f9aae94ade66b876acc", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598533051, + "updated": 1598533051, + "recoveryLevel": "Purgeable" + }, + "kty": "RSA", + "keyOps": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey" + ], + "keySize": 2048, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/fd618d9519b74f9aae94ade66b876acc" + } + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeyVersions.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeyVersions.json new file mode 100644 index 000000000000..3740c00161f2 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeyVersions.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "keyName": "sample-key-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/c2296aa24acf4daf86942bff5aca73dd", + "name": "c2296aa24acf4daf86942bff5aca73dd", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641074, + "updated": 1598641074, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/c2296aa24acf4daf86942bff5aca73dd" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name/versions/d5a04667b6f44b0ca62825f5eae93da6", + "name": "d5a04667b6f44b0ca62825f5eae93da6", + "type": "Microsoft.KeyVault/managedHSMs/keys/versions", + "properties": { + "attributes": { + "enabled": true, + "created": 1598641295, + "updated": 1598641295, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name", + "keyUriWithVersion": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name/d5a04667b6f44b0ca62825f5eae93da6" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeys.json new file mode 100644 index 000000000000..12563bb9a3dc --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/managedHsmListKeys.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "name": "sample-managedhsm-name", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name-1", + "name": "sample-key-name-1", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493796, + "updated": 1596493796, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name-1" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/managedHSMs/sample-managedhsm-name/keys/sample-key-name-2", + "name": "sample-key-name-2", + "type": "Microsoft.KeyVault/managedHSMs/keys", + "properties": { + "attributes": { + "enabled": true, + "created": 1596493797, + "updated": 1596493797, + "recoveryLevel": "Purgeable" + }, + "keyUri": "https://sample-managedhsm-name.managedhsm.azure.net:443/keys/sample-key-name-2" + } + } + ] + } + }, + "default": { + "headers": {}, + "body": { + "error": { + "code": "", + "message": "" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/purgeDeletedVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/purgeDeletedVault.json new file mode 100644 index 000000000000..5847a823586b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/purgeDeletedVault.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "vaultName": "sample-vault", + "location": "westus", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview" + }, + "responses": { + "200": { + "headers": {} + }, + "202": { + "headers": { + "Location": "https://some.endpoint.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/kv-group/providers/Microsoft.KeyVault/vaults/vault1?api-version=2024-12-01-preview" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/putPrivateEndpointConnection.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/putPrivateEndpointConnection.json new file mode 100644 index 000000000000..8a6df99bb1ce --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/putPrivateEndpointConnection.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "privateEndpointConnectionName": "sample-pec", + "api-version": "2024-12-01-preview", + "properties": { + "etag": "", + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this." + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/privateEndpointConnections/sample-pec", + "name": "sample-pec", + "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", + "etag": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-0000-0000-1234-000000000000/resourceGroups/sample-group/providers/Microsoft.Network/privateEndpoints/sample-pe" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "My name is Joe and I'm approving this.", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateAccessPoliciesAdd.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateAccessPoliciesAdd.json new file mode 100644 index 000000000000..6e76588d4a04 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateAccessPoliciesAdd.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "operationKind": "add", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/", + "type": "Microsoft.KeyVault/vaults/accessPolicies", + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/", + "type": "Microsoft.KeyVault/vaults/accessPolicies", + "properties": { + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt" + ], + "secrets": [ + "get" + ], + "certificates": [ + "get" + ] + } + } + ] + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateSecret.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateSecret.json new file mode 100644 index 000000000000..77ff08c0b91b --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateSecret.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "resourceGroupName": "sample-group", + "vaultName": "sample-vault", + "secretName": "secret-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "value": "secret-value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940684, + "updated": 1514940698 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/secrets/secret-name", + "name": "secret-name", + "type": "Microsoft.KeyVault/vaults/secrets", + "location": "westus", + "properties": { + "attributes": { + "enabled": true, + "created": 1514940684, + "updated": 1514940698 + }, + "secretUri": "https://sample-vault.vault.azure.net/secrets/secret-name", + "secretUriWithVersion": "https://sample-vault.vault.azure.net/secrets/secret-name/b8c802f549764f2d97885d152f92ee9d" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateVault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateVault.json new file mode 100644 index 000000000000..8b926b6a191e --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/examples/updateVault.json @@ -0,0 +1,271 @@ +{ + "parameters": { + "resourceGroupName": "sample-resource-group", + "vaultName": "sample-vault", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2024-12-01-preview", + "parameters": { + "properties": { + "tenantId": "00000000-0000-0000-0000-000000000000", + "sku": { + "family": "A", + "name": "standard" + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "publicNetworkAccess": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [ + { + "value": "" + } + ], + "virtualNetworkRules": [ + { + "id": "", + "ignoreMissingVnetServiceEndpoint": false + } + ] + }, + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "privateEndpointConnections": [ + { + "id": "", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "actionsRequired": "None" + } + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault", + "name": "sample-vault", + "type": "Microsoft.KeyVault/vaults", + "location": "westus", + "tags": {}, + "systemData": { + "createdBy": "keyVaultUser1", + "createdByType": "User", + "createdAt": "2020-01-01T12:00:00.0000000Z", + "lastModifiedBy": "keyVaultUser2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-01T12:00:00.0000000Z" + }, + "properties": { + "sku": { + "family": "A", + "name": "standard" + }, + "tenantId": "00000000-0000-0000-0000-000000000000", + "accessPolicies": [ + { + "tenantId": "00000000-0000-0000-0000-000000000000", + "objectId": "00000000-0000-0000-0000-000000000000", + "permissions": { + "keys": [ + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "secrets": [ + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "certificates": [ + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge" + ] + } + } + ], + "enabledForDeployment": true, + "enabledForDiskEncryption": true, + "enabledForTemplateDeployment": true, + "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000", + "vaultUri": "https://sample-vault.vault.azure.net", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keys.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keys.json new file mode 100644 index 000000000000..099e920efc8d --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keys.json @@ -0,0 +1,672 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}": { + "put": { + "tags": [ + "Keys" + ], + "operationId": "Keys_CreateIfNotExist", + "description": "Creates the first version of a new key if it does not exist. If it already exists, then the existing key is returned without any write operations being performed. This API does not create subsequent versions, and does not update existing keys.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the key vault which contains the key to be created." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be created. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/KeyCreateParameters" + }, + "description": "The parameters used to create the specified key." + } + ], + "responses": { + "200": { + "description": "The created key.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a key": { + "$ref": "./examples/createKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_Get", + "description": "Gets the current version of the specified key from the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key": { + "$ref": "./examples/getKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_List", + "description": "Lists the keys in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the keys to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of keys.", + "schema": { + "$ref": "#/definitions/KeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List keys in the vault": { + "$ref": "./examples/listKeys.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions/{keyVersion}": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_GetVersion", + "description": "Gets the specified version of the specified key in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key version to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key version to be retrieved." + }, + { + "name": "keyVersion", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{32}$", + "description": "The version of the key to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key version.", + "schema": { + "$ref": "#/definitions/Key" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key version": { + "$ref": "./examples/getKeyVersion.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/keys/{keyName}/versions": { + "get": { + "tags": [ + "Keys" + ], + "operationId": "Keys_ListVersions", + "description": "Lists the versions of the specified key in the specified key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group which contains the specified key vault." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the vault which contains the key versions to be retrieved." + }, + { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key versions to be retrieved." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of key versions.", + "schema": { + "$ref": "#/definitions/KeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List key versions in the vault": { + "$ref": "./examples/listKeyVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "KeyProperties": { + "properties": { + "attributes": { + "$ref": "#/definitions/KeyAttributes", + "description": "The attributes of the key." + }, + "kty": { + "type": "string", + "minLength": 1, + "description": "The type of the key. For valid values, see JsonWebKeyType.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true + } + }, + "keyOps": { + "type": "array", + "items": { + "type": "string", + "description": "The permitted JSON web key operations of the key. For more information, see JsonWebKeyOperation.", + "enum": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey", + "import", + "release" + ], + "x-ms-enum": { + "name": "JsonWebKeyOperation", + "modelAsString": true + } + } + }, + "keySize": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA. Default for RSA and RSA-HSM keys is 2048. Exception made for bring your own key (BYOK), key exchange keys default to 4096." + }, + "curveName": { + "type": "string", + "description": "The elliptic curve name. For valid values, see JsonWebKeyCurveName. Default for EC and EC-HSM keys is P-256", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true + } + }, + "keyUri": { + "type": "string", + "description": "The URI to retrieve the current version of the key.", + "readOnly": true + }, + "keyUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the key.", + "readOnly": true + }, + "rotationPolicy": { + "$ref": "#/definitions/RotationPolicy", + "description": "Key rotation policy in response. It will be used for both output and input. Omitted if empty" + }, + "release_policy": { + "$ref": "#/definitions/KeyReleasePolicy", + "description": "Key release policy in response. It will be used for both output and input. Omitted if empty" + } + }, + "description": "The properties of the key.", + "type": "object" + }, + "KeyAttributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether or not the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "int64", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "int64", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "recoveryLevel": { + "type": "string", + "description": "The deletion recovery level currently in effect for the object. If it contains 'Purgeable', then the object can be permanently deleted by a privileged user; otherwise, only the system can purge the object at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true + }, + "readOnly": true, + "x-nullable": false + }, + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported.", + "default": false + } + }, + "description": "The object attributes managed by the Azure Key Vault service.", + "type": "object" + }, + "KeyCreateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key." + }, + "properties": { + "$ref": "#/definitions/KeyProperties", + "description": "The properties of the key to be created." + } + }, + "description": "The parameters used to create a key.", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "Key": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/KeyProperties", + "description": "The properties of the key." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "./keyvault.json#/definitions/Resource" + } + ], + "description": "The key resource.", + "type": "object" + }, + "KeyListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Key" + }, + "description": "The key resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next page of keys." + } + }, + "description": "The page of keys.", + "type": "object" + }, + "RotationPolicy": { + "properties": { + "attributes": { + "$ref": "#/definitions/KeyRotationPolicyAttributes", + "description": "The attributes of key rotation policy." + }, + "lifetimeActions": { + "type": "array", + "items": { + "$ref": "#/definitions/LifetimeAction" + }, + "x-ms-identifiers": [], + "description": "The lifetimeActions for key rotation action." + } + }, + "type": "object" + }, + "KeyRotationPolicyAttributes": { + "properties": { + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "expiryTime": { + "type": "string", + "description": "The expiration time for the new key version. It should be in ISO8601 format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "LifetimeAction": { + "properties": { + "trigger": { + "$ref": "#/definitions/Trigger", + "description": "The trigger of key rotation policy lifetimeAction." + }, + "action": { + "$ref": "#/definitions/Action", + "description": "The action of key rotation policy lifetimeAction." + } + }, + "type": "object" + }, + "Trigger": { + "properties": { + "timeAfterCreate": { + "type": "string", + "description": "The time duration after key creation to rotate the key. It only applies to rotate. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + }, + "timeBeforeExpiry": { + "type": "string", + "description": "The time duration before key expiring to rotate or notify. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "Action": { + "properties": { + "type": { + "type": "string", + "description": "The type of action.", + "enum": [ + "rotate", + "notify" + ], + "x-ms-enum": { + "name": "KeyRotationPolicyActionType", + "modelAsString": false + } + } + }, + "type": "object" + }, + "KeyReleasePolicy": { + "properties": { + "contentType": { + "description": "Content type and version of key release policy", + "type": "string", + "default": "application/json; charset=utf-8" + }, + "data": { + "description": "Blob encoding the policy rules under which the key can be released.", + "type": "string", + "format": "base64url" + } + }, + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keysManagedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keysManagedHsm.json new file mode 100644 index 000000000000..aa375c2f7223 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keysManagedHsm.json @@ -0,0 +1,651 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}": { + "put": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_CreateIfNotExist", + "description": "Creates the first version of a new key if it does not exist. If it already exists, then the existing key is returned without any write operations being performed. This API does not create subsequent versions, and does not update existing keys.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsmKeyCreateParameters" + }, + "description": "The parameters used to create the specified key." + } + ], + "responses": { + "200": { + "description": "The created key.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a key": { + "$ref": "./examples/managedHsmCreateKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_Get", + "description": "Gets the current version of the specified key from the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key": { + "$ref": "./examples/managedHsmGetKey.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_List", + "description": "Lists the keys in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of keys.", + "schema": { + "$ref": "#/definitions/ManagedHsmKeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List keys in the managed HSM": { + "$ref": "./examples/managedHsmListKeys.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}/versions/{keyVersion}": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_GetVersion", + "description": "Gets the specified version of the specified key in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyVersion" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved key version.", + "schema": { + "$ref": "#/definitions/ManagedHsmKey" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a key version": { + "$ref": "./examples/managedHsmGetKeyVersion.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/keys/{keyName}/versions": { + "get": { + "tags": [ + "ManagedHsmKeys" + ], + "operationId": "ManagedHsmKeys_ListVersions", + "description": "Lists the versions of the specified key in the specified managed HSM.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedHSMName" + }, + { + "$ref": "#/parameters/ManagedHSMKeyName" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The retrieved page of key versions.", + "schema": { + "$ref": "#/definitions/ManagedHsmKeyListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List key versions in the managed HSM": { + "$ref": "./examples/managedHsmListKeyVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "ManagedHsmKeyProperties": { + "properties": { + "attributes": { + "$ref": "#/definitions/ManagedHsmKeyAttributes", + "description": "The attributes of the key." + }, + "kty": { + "type": "string", + "minLength": 1, + "description": "The type of the key. For valid values, see JsonWebKeyType.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true + } + }, + "keyOps": { + "type": "array", + "items": { + "type": "string", + "description": "The permitted JSON web key operations of the key. For more information, see JsonWebKeyOperation.", + "enum": [ + "encrypt", + "decrypt", + "sign", + "verify", + "wrapKey", + "unwrapKey", + "import", + "release" + ], + "x-ms-enum": { + "name": "JsonWebKeyOperation", + "modelAsString": true + } + } + }, + "keySize": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA. Default for RSA and RSA-HSM keys is 2048. Exception made for bring your own key (BYOK), key exchange keys default to 4096." + }, + "curveName": { + "type": "string", + "description": "The elliptic curve name. For valid values, see JsonWebKeyCurveName. Default for EC and EC-HSM keys is P-256", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true + } + }, + "keyUri": { + "type": "string", + "description": "The URI to retrieve the current version of the key.", + "readOnly": true + }, + "keyUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the key.", + "readOnly": true + }, + "rotationPolicy": { + "$ref": "#/definitions/ManagedHsmRotationPolicy", + "description": "Key rotation policy in response. It will be used for both output and input. Omitted if empty" + }, + "release_policy": { + "$ref": "#/definitions/ManagedHsmKeyReleasePolicy", + "description": "Key release policy in response. It will be used for both output and input. Omitted if empty" + } + }, + "description": "The properties of the key.", + "type": "object" + }, + "ManagedHsmKeyAttributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether or not the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "int64", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "int64", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "recoveryLevel": { + "type": "string", + "description": "The deletion recovery level currently in effect for the object. If it contains 'Purgeable', then the object can be permanently deleted by a privileged user; otherwise, only the system can purge the object at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true + }, + "readOnly": true, + "x-nullable": false + }, + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported." + } + }, + "description": "The object attributes managed by the Azure Key Vault service.", + "type": "object" + }, + "ManagedHsmKeyCreateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key." + }, + "properties": { + "$ref": "#/definitions/ManagedHsmKeyProperties", + "description": "The properties of the key to be created." + } + }, + "description": "The parameters used to create a key.", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "ManagedHsmKey": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ManagedHsmKeyProperties", + "description": "The properties of the key." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/ProxyResourceWithoutSystemData" + } + ], + "description": "The key resource.", + "type": "object" + }, + "ManagedHsmKeyListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsmKey" + }, + "description": "The key resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next page of keys." + } + }, + "description": "The page of keys.", + "type": "object" + }, + "ManagedHsmRotationPolicy": { + "properties": { + "attributes": { + "$ref": "#/definitions/ManagedHsmKeyRotationPolicyAttributes", + "description": "The attributes of key rotation policy." + }, + "lifetimeActions": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsmLifetimeAction" + }, + "x-ms-identifiers": [], + "description": "The lifetimeActions for key rotation action." + } + }, + "type": "object" + }, + "ManagedHsmKeyRotationPolicyAttributes": { + "properties": { + "created": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + }, + "expiryTime": { + "type": "string", + "description": "The expiration time for the new key version. It should be in ISO8601 format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "ManagedHsmLifetimeAction": { + "properties": { + "trigger": { + "$ref": "#/definitions/ManagedHsmTrigger", + "description": "The trigger of key rotation policy lifetimeAction." + }, + "action": { + "$ref": "#/definitions/ManagedHsmAction", + "description": "The action of key rotation policy lifetimeAction." + } + }, + "type": "object" + }, + "ManagedHsmTrigger": { + "properties": { + "timeAfterCreate": { + "type": "string", + "description": "The time duration after key creation to rotate the key. It only applies to rotate. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + }, + "timeBeforeExpiry": { + "type": "string", + "description": "The time duration before key expiring to rotate or notify. It will be in ISO 8601 duration format. Eg: 'P90D', 'P1Y'." + } + }, + "type": "object" + }, + "ManagedHsmAction": { + "properties": { + "type": { + "type": "string", + "description": "The type of action.", + "enum": [ + "rotate", + "notify" + ], + "x-ms-enum": { + "name": "KeyRotationPolicyActionType", + "modelAsString": false + } + } + }, + "type": "object" + }, + "ManagedHsmKeyReleasePolicy": { + "properties": { + "contentType": { + "description": "Content type and version of key release policy", + "type": "string", + "default": "application/json; charset=utf-8" + }, + "data": { + "description": "Blob encoding the policy rules under which the key can be released.", + "type": "string", + "format": "base64url" + } + }, + "type": "object" + }, + "ProxyResourceWithoutSystemData": { + "title": "Resource", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource" + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ], + "description": "Resource tags." + } + }, + "x-ms-azure-resource": true + } + }, + "parameters": { + "ManagedHSMName": { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Managed HSM Pool within the specified resource group.", + "pattern": "^[A-Za-z]([A-Za-z0-9]|\\-[A-Za-z0-9])+$", + "maxLength": 24, + "minLength": 3, + "x-ms-parameter-location": "method" + }, + "ManagedHSMKeyName": { + "name": "keyName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "The name of the key to be created. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", + "x-ms-parameter-location": "method" + }, + "ManagedHSMKeyVersion": { + "name": "keyVersion", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{32}$", + "description": "The version of the key to be retrieved.", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keyvault.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keyvault.json new file mode 100644 index 000000000000..bf299157a901 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/keyvault.json @@ -0,0 +1,2189 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}": { + "put": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_CreateOrUpdate", + "x-ms-long-running-operation": true, + "description": "Create or update a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the server belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultCreateOrUpdateParameters" + }, + "description": "Parameters to create or update the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "200": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a new vault or update an existing vault": { + "$ref": "./examples/createVault.json" + }, + "Create or update a vault with network acls": { + "$ref": "./examples/createVaultWithNetworkAcls.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "patch": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Update", + "description": "Update a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the server belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultPatchParameters" + }, + "description": "Parameters to patch the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Patched vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "200": { + "description": "Patched vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Update an existing vault": { + "$ref": "./examples/updateVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "delete": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Delete", + "description": "Deletes the specified Azure key vault.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault to delete" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK Response." + }, + "204": { + "description": "No Content." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Delete a vault": { + "$ref": "./examples/deleteVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_Get", + "description": "Gets the specified Azure key vault.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved vault", + "schema": { + "$ref": "#/definitions/Vault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Retrieve a vault": { + "$ref": "./examples/getVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicies/{operationKind}": { + "put": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_UpdateAccessPolicy", + "description": "Update access policies in a key vault in the specified subscription.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "operationKind", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "add", + "replace", + "remove" + ], + "x-ms-enum": { + "name": "AccessPolicyUpdateKind", + "modelAsString": false + }, + "description": "Name of the operation" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + }, + "description": "Access policy to merge into the vault" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "The updated access policies", + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + } + }, + "200": { + "description": "The updated access policies", + "schema": { + "$ref": "#/definitions/VaultAccessPolicyParameters" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Add an access policy, or update an access policy with new permissions": { + "$ref": "./examples/updateAccessPoliciesAdd.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListByResourceGroup", + "description": "The List operation gets information about the vaults associated with the subscription and within the specified resource group.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the specified resource group.", + "schema": { + "$ref": "#/definitions/VaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified resource group": { + "$ref": "./examples/listVaultByResourceGroup.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListBySubscription", + "description": "The List operation gets information about the vaults associated with the subscription.", + "parameters": [ + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the specified subscription.", + "schema": { + "$ref": "#/definitions/VaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified subscription": { + "$ref": "./examples/listVaultBySubscription.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedVaults": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_ListDeleted", + "description": "Gets information about the deleted vaults in a subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about all deleted key vaults in a subscription.", + "schema": { + "$ref": "#/definitions/DeletedVaultListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List deleted vaults in the specified subscription": { + "$ref": "./examples/listDeletedVaults.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_GetDeleted", + "description": "Gets the deleted Azure key vault.", + "parameters": [ + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the deleted vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about the deleted vault.", + "schema": { + "$ref": "#/definitions/DeletedVault" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Retrieve a deleted vault": { + "$ref": "./examples/getDeletedVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}/purge": { + "post": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_PurgeDeleted", + "x-ms-long-running-operation": true, + "description": "Permanently deletes the specified vault. aka Purges the deleted Azure key vault.", + "parameters": [ + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the soft-deleted vault." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the soft-deleted vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The vault is purged." + }, + "202": { + "description": "Vault is being purged." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Purge a deleted vault": { + "$ref": "./examples/purgeDeletedVault.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resources": { + "get": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_List", + "description": "The List operation gets information about the vaults associated with the subscription.", + "parameters": [ + { + "name": "$filter", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "resourceType eq 'Microsoft.KeyVault/vaults'" + ], + "x-ms-enum": { + "name": "VaultListFilterTypes", + "modelAsString": false + }, + "description": "The filter to apply on the operation." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "name": "api-version", + "in": "query", + "required": true, + "x-ms-api-version": false, + "type": "string", + "enum": [ + "2015-11-01" + ], + "x-ms-enum": { + "name": "ResourceManagerApiVersions", + "modelAsString": false + }, + "description": "Azure Resource Manager Api Version." + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all key vaults in the subscription.", + "schema": { + "$ref": "#/definitions/ResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List vaults in the specified subscription": { + "$ref": "./examples/listVault.json" + } + }, + "produces": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkNameAvailability": { + "post": { + "tags": [ + "Vaults" + ], + "operationId": "Vaults_CheckNameAvailability", + "description": "Checks that the vault name is valid and is not already in use.", + "parameters": [ + { + "name": "vaultName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VaultCheckNameAvailabilityParameters" + }, + "description": "The name of the vault." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK -- Operation to check the vault name availability was successful.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Validate a vault name": { + "$ref": "./examples/checkVaultNameAvailability.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Get", + "description": "Gets the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultGetPrivateEndpointConnection": { + "$ref": "./examples/getPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Private endpoint connection successfully returned.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "put": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Put", + "description": "Updates the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultPutPrivateEndpointConnection": { + "$ref": "./examples/putPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "properties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The intended state of private endpoint connection." + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The state of private endpoint connection was updated successfully.", + "headers": { + "Retry-After": { + "description": "(specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int32" + }, + "Azure-AsyncOperation": { + "description": "(specified only if operation does not finish synchronously) The URI to poll for completion status. The response of this URI may be synchronous or asynchronous.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Delete", + "description": "Deletes the specified private endpoint connection associated with the key vault.", + "x-ms-examples": { + "KeyVaultDeletePrivateEndpointConnection": { + "$ref": "./examples/deletePrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The private endpoint connection was successfully deleted.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "202": { + "description": "The private endpoint connection is being deleted.", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in the location header.", + "type": "integer", + "format": "int32" + }, + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateEndpointConnections": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_ListByResource", + "description": "The List operation gets information about the private endpoint connections associated with the vault.", + "x-ms-examples": { + "KeyVaultListPrivateEndpointConnection": { + "$ref": "./examples/listPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Get information about all private endpoint connections in the specified resource group.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/privateLinkResources": { + "get": { + "tags": [ + "PrivateLinkResources" + ], + "operationId": "PrivateLinkResources_ListByVault", + "description": "Gets the private link resources supported for the key vault.", + "x-ms-examples": { + "KeyVaultListPrivateLinkResources": { + "$ref": "./examples/listPrivateLinkResources.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved private link resources.", + "schema": { + "$ref": "#/definitions/PrivateLinkResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/networkSecurityPerimeterConfigurations": { + "get": { + "tags": [ + "NetworkSecurityPerimeterConfiguration" + ], + "operationId": "NetworkSecurityPerimeter_ListConfiguration", + "description": "The List operation gets information about the network security perimeter associations for the key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Get information about the network security perimeter associations of the key vault.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfigurationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + }, + "x-ms-examples": { + "KeyVaultListNetworkSecurityPerimeterAssociationConfigurations": { + "$ref": "./examples/listNetworkSecurityPerimeterAssociationConfiguration.json" + } + }, + "produces": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/networkSecurityPerimeterConfigurations/{associationProxyName}": { + "get": { + "tags": [ + "NetworkSecurityPerimeterConfiguration" + ], + "operationId": "NetworkSecurityPerimeter_GetConfiguration", + "description": "The Get operation gets information about the network security perimeter associations for the key vault.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/VaultName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AssociationProxyNameParameter" + } + ], + "responses": { + "200": { + "description": "Get information about the network security perimeter associations of the key vault.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "KeyVaultGetNetworkSecurityPerimeterAssociationConfiguration": { + "$ref": "./examples/getNetworkSecurityPerimeterAssociationConfiguration.json" + } + }, + "produces": [ + "application/json" + ] + } + } + }, + "definitions": { + "Sku": { + "properties": { + "family": { + "type": "string", + "description": "SKU family name", + "enum": [ + "A" + ], + "x-ms-client-default": "A", + "x-ms-enum": { + "name": "SkuFamily", + "modelAsString": true + } + }, + "name": { + "type": "string", + "description": "SKU name to specify whether the key vault is a standard vault or a premium vault.", + "enum": [ + "standard", + "premium" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + } + } + }, + "description": "SKU details", + "required": [ + "name", + "family" + ], + "type": "object" + }, + "AccessPolicyEntry": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "objectId": { + "type": "string", + "description": "The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies." + }, + "applicationId": { + "type": "string", + "format": "uuid", + "description": " Application ID of the client making request on behalf of a principal" + }, + "permissions": { + "$ref": "#/definitions/Permissions", + "description": "Permissions the identity has for keys, secrets and certificates." + } + }, + "description": "An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.", + "required": [ + "tenantId", + "objectId", + "permissions" + ], + "type": "object" + }, + "Permissions": { + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "encrypt", + "decrypt", + "wrapKey", + "unwrapKey", + "sign", + "verify", + "get", + "list", + "create", + "update", + "import", + "delete", + "backup", + "restore", + "recover", + "purge", + "release", + "rotate", + "getrotationpolicy", + "setrotationpolicy" + ], + "x-ms-enum": { + "name": "KeyPermissions", + "modelAsString": true + } + }, + "description": "Permissions to keys" + }, + "secrets": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "set", + "delete", + "backup", + "restore", + "recover", + "purge" + ], + "x-ms-enum": { + "name": "SecretPermissions", + "modelAsString": true + } + }, + "description": "Permissions to secrets" + }, + "certificates": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "delete", + "create", + "import", + "update", + "managecontacts", + "getissuers", + "listissuers", + "setissuers", + "deleteissuers", + "manageissuers", + "recover", + "purge", + "backup", + "restore" + ], + "x-ms-enum": { + "name": "CertificatePermissions", + "modelAsString": true + } + }, + "description": "Permissions to certificates" + }, + "storage": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "all", + "get", + "list", + "delete", + "set", + "update", + "regeneratekey", + "recover", + "purge", + "backup", + "restore", + "setsas", + "listsas", + "getsas", + "deletesas" + ], + "x-ms-enum": { + "name": "StoragePermissions", + "modelAsString": true + } + }, + "description": "Permissions to storage accounts" + } + }, + "description": "Permissions the identity has for keys, secrets, certificates and storage.", + "type": "object" + }, + "VaultProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "SKU details" + }, + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID. When `createMode` is set to `recover`, access policies are not required. Otherwise, access policies are required." + }, + "vaultUri": { + "type": "string", + "description": "The URI of the vault for performing operations on keys and secrets." + }, + "hsmPoolResourceId": { + "type": "string", + "description": "The resource id of HSM Pool.", + "readOnly": true + }, + "enabledForDeployment": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault." + }, + "enabledForDiskEncryption": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys." + }, + "enabledForTemplateDeployment": { + "type": "boolean", + "default": false, + "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault." + }, + "enableSoftDelete": { + "type": "boolean", + "default": true, + "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. If it's not set to any value(true or false) when creating new key vault, it will be set to true by default. Once set to true, it cannot be reverted to false." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "default": 90, + "description": "softDelete data retention days. It accepts >=7 and <=90." + }, + "enableRbacAuthorization": { + "type": "boolean", + "default": false, + "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC." + }, + "createMode": { + "type": "string", + "description": "The vault's create mode to indicate whether the vault need to be recovered or not.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false + }, + "x-ms-mutability": [ + "create", + "update" + ] + }, + "enablePurgeProtection": { + "type": "boolean", + "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value." + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Rules governing the accessibility of the key vault from specific network locations." + }, + "provisioningState": { + "type": "string", + "description": "Provisioning state of the vault.", + "enum": [ + "Succeeded", + "RegisteringDns" + ], + "x-ms-enum": { + "name": "VaultProvisioningState", + "modelAsString": true + } + }, + "privateEndpointConnections": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnectionItem" + }, + "description": "List of private endpoint connections associated with the key vault." + }, + "publicNetworkAccess": { + "type": "string", + "default": "enabled", + "description": "Property to specify whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules." + } + }, + "required": [ + "tenantId", + "sku" + ], + "description": "Properties of the vault", + "type": "object" + }, + "VaultPatchProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "SKU details" + }, + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID." + }, + "enabledForDeployment": { + "type": "boolean", + "description": "Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault." + }, + "enabledForDiskEncryption": { + "type": "boolean", + "description": "Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys." + }, + "enabledForTemplateDeployment": { + "type": "boolean", + "description": "Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault." + }, + "enableSoftDelete": { + "type": "boolean", + "description": "Property to specify whether the 'soft delete' functionality is enabled for this key vault. Once set to true, it cannot be reverted to false." + }, + "enableRbacAuthorization": { + "type": "boolean", + "description": "Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the value of this property will not change." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "description": "softDelete data retention days. It accepts >=7 and <=90." + }, + "createMode": { + "type": "string", + "description": "The vault's create mode to indicate whether the vault need to be recovered or not.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false + } + }, + "enablePurgeProtection": { + "type": "boolean", + "description": "Property specifying whether protection against purge is enabled for this vault. Setting this property to true activates protection against purge for this vault and its content - only the Key Vault service may initiate a hard, irrecoverable deletion. The setting is effective only if soft delete is also enabled. Enabling this functionality is irreversible - that is, the property does not accept false as its value." + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "A collection of rules governing the accessibility of the vault from specific network locations." + }, + "publicNetworkAccess": { + "type": "string", + "description": "Property to specify whether the vault will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked. This will override the set firewall rules, meaning that even if the firewall rules are present we will not honor the rules. If set to 'SecuredByPerimeter' then only network security perimeter rules will apply; trusted services will not be allowed through." + } + }, + "description": "Properties of the vault", + "type": "object" + }, + "VaultAccessPolicyProperties": { + "properties": { + "accessPolicies": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessPolicyEntry" + }, + "x-ms-identifiers": [ + "tenantId", + "objectId", + "permissions" + ], + "description": "An array of 0 to 16 identities that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID." + } + }, + "required": [ + "accessPolicies" + ], + "description": "Properties of the vault access policy", + "type": "object" + }, + "DeletedVaultProperties": { + "properties": { + "vaultId": { + "readOnly": true, + "type": "string", + "description": "The resource id of the original vault." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The location of the original vault." + }, + "deletionDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The deleted date." + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purged date." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags of the original vault." + }, + "purgeProtectionEnabled": { + "readOnly": true, + "type": "boolean", + "description": "Purge protection status of the original vault." + } + }, + "description": "Properties of the deleted vault.", + "type": "object" + }, + "VaultCreateOrUpdateParameters": { + "properties": { + "location": { + "type": "string", + "description": "The supported Azure location where the key vault should be created." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key vault." + }, + "properties": { + "$ref": "#/definitions/VaultProperties", + "description": "Properties of the vault" + } + }, + "description": "Parameters for creating or updating a vault", + "required": [ + "location", + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultPatchParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the key vault. " + }, + "properties": { + "$ref": "#/definitions/VaultPatchProperties", + "description": "Properties of the vault" + } + }, + "description": "Parameters for creating or updating a vault", + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultAccessPolicyParameters": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource id of the access policy." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The resource name of the access policy." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource name of the access policy." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The resource type of the access policy." + }, + "properties": { + "$ref": "#/definitions/VaultAccessPolicyProperties", + "description": "Properties of the access policy" + } + }, + "description": "Parameters for updating the access policy in a vault", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "Vault": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified identifier of the key vault resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Name of the key vault resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type of the key vault resource." + }, + "location": { + "type": "string", + "description": "Azure location of the key vault resource." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags assigned to the key vault resource." + }, + "systemData": { + "description": "System metadata for the key vault.", + "$ref": "common.json#/definitions/SystemData" + }, + "properties": { + "$ref": "#/definitions/VaultProperties", + "description": "Properties of the vault" + } + }, + "required": [ + "properties" + ], + "description": "Resource information with extended details.", + "x-ms-azure-resource": true, + "type": "object" + }, + "DeletedVault": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource ID for the deleted key vault." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the key vault." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the key vault." + }, + "properties": { + "$ref": "#/definitions/DeletedVaultProperties", + "description": "Properties of the vault" + } + }, + "description": "Deleted vault information with extended details.", + "type": "object" + }, + "VaultListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Vault" + }, + "description": "The list of vaults." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of vaults." + } + }, + "description": "List of vaults", + "type": "object" + }, + "DeletedVaultListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DeletedVault" + }, + "description": "The list of deleted vaults." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted vaults." + } + }, + "description": "List of vaults", + "type": "object" + }, + "ResourceListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + }, + "description": "The list of vault resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of vault resources." + } + }, + "description": "List of vault resources.", + "type": "object" + }, + "Resource": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified identifier of the key vault resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Name of the key vault resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type of the key vault resource." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "Azure location of the key vault resource." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags assigned to the key vault resource." + } + }, + "description": "Key Vault resource", + "x-ms-azure-resource": true, + "type": "object" + }, + "VaultCheckNameAvailabilityParameters": { + "properties": { + "name": { + "type": "string", + "description": "The vault name." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.KeyVault/vaults" + ], + "x-ms-enum": { + "name": "Type", + "modelAsString": false + }, + "description": "The type of resource, Microsoft.KeyVault/vaults" + } + }, + "required": [ + "name", + "type" + ], + "description": "The parameters used to check the availability of the vault name.", + "type": "object" + }, + "CheckNameAvailabilityResult": { + "properties": { + "nameAvailable": { + "readOnly": true, + "type": "boolean", + "description": "A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used." + }, + "reason": { + "readOnly": true, + "type": "string", + "description": "The reason that a vault name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": false + } + }, + "message": { + "readOnly": true, + "type": "string", + "description": "An error message explaining the Reason value in more detail." + } + }, + "description": "The CheckNameAvailability operation response.", + "type": "object" + }, + "NetworkRuleSet": { + "properties": { + "bypass": { + "type": "string", + "description": "Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'.", + "enum": [ + "AzureServices", + "None" + ], + "x-ms-enum": { + "name": "NetworkRuleBypassOptions", + "modelAsString": true + } + }, + "defaultAction": { + "type": "string", + "description": "The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "NetworkRuleAction", + "modelAsString": true + } + }, + "ipRules": { + "type": "array", + "items": { + "$ref": "#/definitions/IPRule" + }, + "description": "The list of IP address rules." + }, + "virtualNetworkRules": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkRule" + }, + "x-ms-identifiers": [ + "id" + ], + "description": "The list of virtual network rules." + } + }, + "description": "A set of rules governing the network accessibility of a vault.", + "type": "object" + }, + "IPRule": { + "properties": { + "value": { + "type": "string", + "description": "An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78)." + } + }, + "required": [ + "value" + ], + "description": "A rule governing the accessibility of a vault from a specific ip address or ip range.", + "type": "object" + }, + "VirtualNetworkRule": { + "properties": { + "id": { + "type": "string", + "description": "Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'." + }, + "ignoreMissingVnetServiceEndpoint": { + "type": "boolean", + "description": "Property to specify whether NRP will ignore the check if parent subnet has serviceEndpoints configured." + } + }, + "required": [ + "id" + ], + "description": "A rule governing the accessibility of a vault from a specific virtual network.", + "type": "object" + }, + "PrivateEndpointConnectionItem": { + "properties": { + "id": { + "type": "string", + "description": "Id of private endpoint connection." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + }, + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Private endpoint connection properties." + } + }, + "description": "Private endpoint connection item.", + "type": "object" + }, + "PrivateEndpointConnection": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Resource properties." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "Private endpoint connection resource.", + "x-ms-azure-resource": true, + "type": "object" + }, + "PrivateEndpointConnectionListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The list of private endpoint connections." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of private endpoint connections." + } + }, + "description": "List of private endpoint connections.", + "type": "object" + }, + "PrivateEndpointConnectionProperties": { + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "Properties of the private endpoint object." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "Approval state of the private link connection." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "Provisioning state of the private endpoint connection." + } + }, + "description": "Properties of the private endpoint connection resource.", + "type": "object" + }, + "PrivateEndpoint": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Full identifier of the private endpoint resource." + } + }, + "description": "Private endpoint object properties.", + "type": "object" + }, + "PrivateLinkServiceConnectionState": { + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been approved, rejected or removed by the key vault owner." + }, + "description": { + "type": "string", + "description": "The reason for approval or rejection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer.", + "enum": [ + "None" + ], + "x-ms-enum": { + "name": "ActionsRequired", + "modelAsString": true + } + } + }, + "description": "An object that represents the approval state of the private link connection.", + "type": "object" + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Failed", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + } + }, + "PrivateLinkResourceListResult": { + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + }, + "description": "A list of private link resources", + "type": "object" + }, + "PrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "description": "A private link resource", + "type": "object" + }, + "PrivateLinkResourceProperties": { + "properties": { + "groupId": { + "description": "Group identifier of private link resource.", + "type": "string", + "readOnly": true + }, + "requiredMembers": { + "description": "Required member names of private link resource.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required DNS zone names of the the private link resource." + } + }, + "description": "Properties of a private link resource.", + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the resource group that contains the key vault.", + "x-ms-parameter-location": "method" + }, + "VaultName": { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "The name of the key vault.", + "x-ms-parameter-location": "method" + }, + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the private endpoint connection associated with the key vault.", + "x-ms-parameter-location": "method" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + }, + "AssociationProxyNameParameter": { + "name": "associationProxyName", + "in": "path", + "required": true, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\.[a-z][a-z0-9]*$", + "type": "string", + "description": "Association proxy name associated with the key vault.", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/managedHsm.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/managedHsm.json new file mode 100644 index 000000000000..3543140d95c9 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/managedHsm.json @@ -0,0 +1,1740 @@ +{ + "swagger": "2.0", + "info": { + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault.", + "version": "2024-12-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}": { + "put": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_CreateOrUpdate", + "x-ms-long-running-operation": true, + "description": "Create or update a managed HSM Pool in the specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "Parameters to create or update the managed HSM Pool" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "200": { + "description": "Created or updated managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Create a new managed HSM Pool or update an existing managed HSM Pool": { + "$ref": "./examples/ManagedHsm_CreateOrUpdate.json" + } + } + }, + "patch": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Update", + "x-ms-long-running-operation": true, + "description": "Update a managed HSM Pool in the specified subscription.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "Parameters to patch the managed HSM Pool" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "200": { + "description": "Patched managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Update an existing managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Update.json" + } + } + }, + "delete": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Delete", + "x-ms-long-running-operation": true, + "description": "Deletes the specified managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the managed HSM Pool to delete" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "Request successful. Resource does not exist." + }, + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "200": { + "description": "Delete successful." + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Delete a managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Delete.json" + } + } + }, + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_Get", + "description": "Gets the specified managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved managed HSM Pool", + "schema": { + "$ref": "#/definitions/ManagedHsm" + } + }, + "204": { + "description": "Request successful. Resource does not exist." + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Retrieve a managed HSM Pool": { + "$ref": "./examples/ManagedHsm_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListByResourceGroup", + "description": "The List operation gets information about the managed HSM Pools associated with the subscription and within the specified resource group.", + "parameters": [ + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified resource group.", + "schema": { + "$ref": "#/definitions/ManagedHsmListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List managed HSM Pools in a resource group": { + "$ref": "./examples/ManagedHsm_ListByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/managedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListBySubscription", + "description": "The List operation gets information about the managed HSM Pools associated with the subscription.", + "parameters": [ + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/ManagedHsmListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateEndpointConnections": { + "get": { + "tags": [ + "MHSMListPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_ListByResource", + "description": "The List operation gets information about the private endpoint connections associated with the managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionsListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListPrivateEndpointConnectionsByResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedManagedHSMs": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_ListDeleted", + "description": "The List operation gets information about the deleted managed HSMs associated with the subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about all managed HSMs in the specified subscription.", + "schema": { + "$ref": "#/definitions/DeletedManagedHsmListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List deleted managed HSMs in the specified subscription": { + "$ref": "./examples/DeletedManagedHsm_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}": { + "get": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_GetDeleted", + "description": "Gets the specified deleted managed HSM.", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the deleted managed HSM." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the deleted managed HSM." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved information about the specified deleted managed HSM.", + "schema": { + "$ref": "#/definitions/DeletedManagedHsm" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Retrieve a deleted managed HSM": { + "$ref": "./examples/DeletedManagedHsm_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}/purge": { + "post": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_PurgeDeleted", + "x-ms-long-running-operation": true, + "description": "Permanently deletes the specified managed HSM.", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the soft-deleted managed HSM." + }, + { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The location of the soft-deleted managed HSM." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted and the operation will complete asynchronously.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "Purge a managed HSM Pool": { + "$ref": "./examples/DeletedManagedHsm_Purge.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Get", + "description": "Gets the specified private endpoint connection associated with the managed HSM Pool.", + "x-ms-examples": { + "ManagedHsmGetPrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_getPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Private endpoint connection successfully returned.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + } + }, + "put": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Put", + "description": "Updates the specified private endpoint connection associated with the managed hsm pool.", + "x-ms-examples": { + "ManagedHsmPutPrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_putPrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "properties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + }, + "description": "The intended state of private endpoint connection." + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The state of private endpoint connection was updated successfully.", + "headers": { + "Retry-After": { + "description": "(specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int32" + }, + "Azure-AsyncOperation": { + "description": "(specified only if operation does not finish synchronously) The URI to poll for completion status. The response of this URI may be synchronous or asynchronous.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "MHSMPrivateEndpointConnections" + ], + "operationId": "MHSMPrivateEndpointConnections_Delete", + "x-ms-long-running-operation": true, + "description": "Deletes the specified private endpoint connection associated with the managed hsm pool.", + "x-ms-examples": { + "ManagedHsmDeletePrivateEndpointConnection": { + "$ref": "./examples/ManagedHsm_deletePrivateEndpointConnection.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/MHSMPrivateEndpointConnectionName" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "The private endpoint connection was successfully deleted.", + "schema": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + } + }, + "202": { + "description": "The private endpoint connection is being deleted.", + "headers": { + "Location": { + "description": "The URI to poll for completion status.", + "type": "string" + } + } + }, + "204": { + "description": "The private endpoint connection does not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/privateLinkResources": { + "get": { + "tags": [ + "MHSMPrivateLinkResources" + ], + "operationId": "MHSMPrivateLinkResources_ListByMHSMResource", + "description": "Gets the private link resources supported for the managed hsm pool.", + "x-ms-examples": { + "KeyVaultListPrivateLinkResources": { + "$ref": "./examples/ManagedHsm_listPrivateLinkResources.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Successfully retrieved private link resources.", + "schema": { + "$ref": "#/definitions/MHSMPrivateLinkResourceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/managedHSMs/{name}/regions": { + "get": { + "tags": [ + "MHSMListRegions" + ], + "operationId": "MHSMRegions_ListByResource", + "description": "The List operation gets information about the regions associated with the managed HSM Pool.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ManagedHsmResourceGroupName" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the managed HSM Pool" + } + ], + "responses": { + "200": { + "description": "Get information about all managed HSM Pools in the specified subscription.", + "schema": { + "$ref": "#/definitions/MHSMRegionsListResult" + } + }, + "default": { + "description": "The error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ManagedHsmError" + } + } + }, + "x-ms-examples": { + "List managed HSM Pools in a subscription": { + "$ref": "./examples/ManagedHsm_ListRegionsByResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkMhsmNameAvailability": { + "post": { + "tags": [ + "ManagedHsms" + ], + "operationId": "ManagedHsms_CheckMhsmNameAvailability", + "description": "Checks that the managed hsm name is valid and is not already in use.", + "parameters": [ + { + "name": "mhsmName", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckMhsmNameAvailabilityParameters" + }, + "description": "The name of the managed hsm." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK -- Operation to check the mhsm name availability was successful.", + "schema": { + "$ref": "#/definitions/CheckMhsmNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Validate a managed hsm name": { + "$ref": "./examples/ManagedHsm_checkMhsmNameAvailability.json" + } + }, + "produces": [ + "application/json" + ] + } + } + }, + "definitions": { + "ManagedHsmSku": { + "properties": { + "family": { + "type": "string", + "description": "SKU Family of the managed HSM Pool", + "enum": [ + "B", + "C" + ], + "x-ms-client-default": "B", + "x-ms-enum": { + "name": "ManagedHsmSkuFamily", + "modelAsString": true + } + }, + "name": { + "type": "string", + "description": "SKU of the managed HSM Pool", + "enum": [ + "Standard_B1", + "Custom_B32", + "Custom_B6", + "Custom_C42", + "Custom_C10" + ], + "x-ms-enum": { + "name": "ManagedHsmSkuName", + "modelAsString": false + } + } + }, + "description": "SKU details", + "required": [ + "name", + "family" + ], + "type": "object" + }, + "ManagedHsmProperties": { + "properties": { + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM pool." + }, + "initialAdminObjectIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of initial administrators object ids for this managed hsm pool." + }, + "hsmUri": { + "type": "string", + "readOnly": true, + "description": "The URI of the managed hsm pool for performing operations on keys." + }, + "enableSoftDelete": { + "type": "boolean", + "default": true, + "description": "Property to specify whether the 'soft delete' functionality is enabled for this managed HSM pool. Soft delete is enabled by default for all managed HSMs and is immutable." + }, + "softDeleteRetentionInDays": { + "type": "integer", + "format": "int32", + "default": 90, + "description": "Soft deleted data retention days. When you delete an HSM or a key, it will remain recoverable for the configured retention period or for a default period of 90 days. It accepts values between 7 and 90." + }, + "enablePurgeProtection": { + "type": "boolean", + "default": true, + "description": "Property specifying whether protection against purge is enabled for this managed HSM pool. Setting this property to true activates protection against purge for this managed HSM pool and its content - only the Managed HSM service may initiate a hard, irrecoverable deletion. Enabling this functionality is irreversible." + }, + "createMode": { + "type": "string", + "description": "The create mode to indicate whether the resource is being created or is being recovered from a deleted resource.", + "enum": [ + "recover", + "default" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": false, + "values": [ + { + "value": "recover", + "description": "Recover the managed HSM pool from a soft-deleted resource." + }, + { + "value": "default", + "description": "Create a new managed HSM pool. This is the default option." + } + ] + }, + "x-ms-mutability": [ + "create", + "update" + ] + }, + "statusMessage": { + "readOnly": true, + "type": "string", + "description": "Resource Status Message." + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "Provisioning state.", + "enum": [ + "Succeeded", + "Provisioning", + "Failed", + "Updating", + "Deleting", + "Activated", + "SecurityDomainRestore", + "Restoring" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "value": "Succeeded", + "description": "The managed HSM Pool has been full provisioned." + }, + { + "value": "Provisioning", + "description": "The managed HSM Pool is currently being provisioned." + }, + { + "value": "Failed", + "description": "Provisioning of the managed HSM Pool has failed." + }, + { + "value": "Updating", + "description": "The managed HSM Pool is currently being updated." + }, + { + "value": "Deleting", + "description": "The managed HSM Pool is currently being deleted." + }, + { + "value": "Activated", + "description": "The managed HSM pool is ready for normal use." + }, + { + "value": "SecurityDomainRestore", + "description": "The managed HSM pool is waiting for a security domain restore action." + }, + { + "value": "Restoring", + "description": "The managed HSM pool is being restored from full HSM backup." + } + ] + } + }, + "networkAcls": { + "$ref": "#/definitions/MHSMNetworkRuleSet", + "description": "Rules governing the accessibility of the key vault from specific network locations." + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMGeoReplicatedRegion" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "List of all regions associated with the managed hsm pool." + }, + "privateEndpointConnections": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionItem" + }, + "description": "List of private endpoint connections associated with the managed hsm pool." + }, + "publicNetworkAccess": { + "description": "Control permission to the managed HSM from public networks.", + "enum": [ + "Enabled", + "Disabled" + ], + "default": "Enabled", + "type": "string", + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true + } + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purge date in UTC." + }, + "securityDomainProperties": { + "readOnly": true, + "$ref": "#/definitions/ManagedHSMSecurityDomainProperties", + "description": "Managed HSM security domain properties." + } + }, + "description": "Properties of the managed HSM Pool", + "type": "object" + }, + "ManagedHsm": { + "properties": { + "properties": { + "$ref": "#/definitions/ManagedHsmProperties", + "description": "Properties of the managed HSM" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "Resource information with extended details.", + "type": "object" + }, + "ManagedHsmResource": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The Azure Resource Manager resource ID for the managed HSM Pool." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the managed HSM Pool." + }, + "location": { + "type": "string", + "description": "The supported Azure location where the managed HSM Pool should be created.", + "x-ms-mutability": [ + "create", + "read" + ] + }, + "sku": { + "$ref": "#/definitions/ManagedHsmSku", + "description": "SKU details" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags" + }, + "systemData": { + "$ref": "common.json#/definitions/SystemData" + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity" + } + }, + "description": "Managed HSM resource", + "x-ms-azure-resource": true, + "type": "object" + }, + "ManagedHsmListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ManagedHsm" + }, + "description": "The list of managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of managed HSM Pools", + "type": "object" + }, + "MHSMPrivateEndpointConnectionsListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMPrivateEndpointConnection" + }, + "description": "The private endpoint connection associated with a managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of private endpoint connections associated with a managed HSM Pools", + "type": "object" + }, + "MHSMRegionsListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMGeoReplicatedRegion" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "The region associated with a managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of managed HSM Pools." + } + }, + "description": "List of regions associated with a managed HSM Pools" + }, + "ManagedHsmError": { + "properties": { + "error": { + "readOnly": true, + "description": "The server error.", + "$ref": "#/definitions/Error" + } + }, + "description": "The error exception.", + "type": "object" + }, + "Error": { + "properties": { + "code": { + "type": "string", + "readOnly": true, + "description": "The error code." + }, + "message": { + "type": "string", + "readOnly": true, + "description": "The error message." + }, + "innererror": { + "x-ms-client-name": "innerError", + "readOnly": true, + "description": "The inner error, contains a more specific error code.", + "$ref": "#/definitions/Error" + } + }, + "description": "The server error.", + "type": "object" + }, + "DeletedManagedHsm": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The Azure Resource Manager resource ID for the deleted managed HSM Pool." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the managed HSM Pool." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type of the managed HSM Pool." + }, + "properties": { + "$ref": "#/definitions/DeletedManagedHsmProperties", + "description": "Properties of the deleted managed HSM" + } + }, + "type": "object" + }, + "DeletedManagedHsmProperties": { + "properties": { + "mhsmId": { + "readOnly": true, + "type": "string", + "description": "The resource id of the original managed HSM." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The location of the original managed HSM." + }, + "deletionDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The deleted date." + }, + "scheduledPurgeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The scheduled purged date." + }, + "purgeProtectionEnabled": { + "readOnly": true, + "type": "boolean", + "description": "Purge protection status of the original managed HSM." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags of the original managed HSM." + } + }, + "description": "Properties of the deleted managed HSM.", + "type": "object" + }, + "DeletedManagedHsmListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DeletedManagedHsm" + }, + "description": "The list of deleted managed HSM Pools." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted managed HSM Pools." + } + }, + "description": "List of deleted managed HSM Pools", + "type": "object" + }, + "MHSMGeoReplicatedRegion": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the geo replicated region." + }, + "provisioningState": { + "$ref": "#/definitions/MHSMGeoReplicationRegionProvisioningState", + "description": "Provisioning state of the geo replicated region." + }, + "isPrimary": { + "type": "boolean", + "description": "A boolean value that indicates whether the region is the primary region or a secondary region." + } + }, + "description": "A region that this managed HSM Pool has been extended to." + }, + "MHSMNetworkRuleSet": { + "properties": { + "bypass": { + "type": "string", + "description": "Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'. If not specified the default is 'AzureServices'.", + "enum": [ + "AzureServices", + "None" + ], + "x-ms-enum": { + "name": "NetworkRuleBypassOptions", + "modelAsString": true + } + }, + "defaultAction": { + "type": "string", + "description": "The default action when no rule from ipRules and from virtualNetworkRules match. This is only used after the bypass property has been evaluated.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "NetworkRuleAction", + "modelAsString": true + } + }, + "ipRules": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMIPRule" + }, + "x-ms-identifiers": [ + "value" + ], + "description": "The list of IP address rules." + }, + "virtualNetworkRules": { + "type": "array", + "items": { + "$ref": "#/definitions/MHSMVirtualNetworkRule" + }, + "description": "The list of virtual network rules." + } + }, + "description": "A set of rules governing the network accessibility of a managed hsm pool.", + "type": "object" + }, + "MHSMIPRule": { + "properties": { + "value": { + "type": "string", + "description": "An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address) or '124.56.78.0/24' (all addresses that start with 124.56.78)." + } + }, + "required": [ + "value" + ], + "description": "A rule governing the accessibility of a managed HSM pool from a specific IP address or IP range.", + "type": "object" + }, + "MHSMVirtualNetworkRule": { + "properties": { + "id": { + "type": "string", + "description": "Full resource id of a vnet subnet, such as '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'." + } + }, + "required": [ + "id" + ], + "description": "A rule governing the accessibility of a managed hsm pool from a specific virtual network.", + "type": "object" + }, + "MHSMPrivateEndpointConnectionItem": { + "properties": { + "id": { + "type": "string", + "description": "Id of private endpoint connection." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + }, + "properties": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Private endpoint connection properties." + } + }, + "description": "Private endpoint connection item.", + "type": "object" + }, + "MHSMPrivateEndpointConnection": { + "properties": { + "properties": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Resource properties." + }, + "etag": { + "type": "string", + "description": "Modified whenever there is a change in the state of private endpoint connection." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "Private endpoint connection resource.", + "x-ms-azure-resource": true, + "type": "object" + }, + "MHSMPrivateEndpointConnectionProperties": { + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/MHSMPrivateEndpoint", + "description": "Properties of the private endpoint object." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/MHSMPrivateLinkServiceConnectionState", + "description": "Approval state of the private link connection." + }, + "provisioningState": { + "$ref": "#/definitions/MHSMPrivateEndpointConnectionProvisioningState", + "description": "Provisioning state of the private endpoint connection." + } + }, + "description": "Properties of the private endpoint connection resource.", + "type": "object" + }, + "MHSMPrivateEndpoint": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Full identifier of the private endpoint resource." + } + }, + "description": "Private endpoint object properties.", + "type": "object" + }, + "MHSMPrivateLinkServiceConnectionState": { + "properties": { + "status": { + "$ref": "#/definitions/MHSMPrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been approved, rejected or removed by the key vault owner." + }, + "description": { + "type": "string", + "description": "The reason for approval or rejection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer.", + "enum": [ + "None" + ], + "x-ms-enum": { + "name": "ActionsRequired", + "modelAsString": true + } + } + }, + "description": "An object that represents the approval state of the private link connection.", + "type": "object" + }, + "MHSMPrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true + } + }, + "MHSMPrivateEndpointConnectionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Failed", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + } + }, + "MHSMPrivateLinkResourceListResult": { + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/MHSMPrivateLinkResource" + } + } + }, + "description": "A list of private link resources", + "type": "object" + }, + "MHSMPrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/MHSMPrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ManagedHsmResource" + } + ], + "description": "A private link resource", + "type": "object" + }, + "MHSMPrivateLinkResourceProperties": { + "properties": { + "groupId": { + "description": "Group identifier of private link resource.", + "type": "string", + "readOnly": true + }, + "requiredMembers": { + "description": "Required member names of private link resource.", + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required DNS zone names of the the private link resource." + } + }, + "description": "Properties of a private link resource.", + "type": "object" + }, + "MHSMGeoReplicationRegionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Preprovisioning", + "Provisioning", + "Succeeded", + "Failed", + "Deleting", + "Cleanup" + ], + "x-ms-enum": { + "name": "GeoReplicationRegionProvisioningState", + "modelAsString": true + } + }, + "CheckMhsmNameAvailabilityParameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The managed hsm name." + } + }, + "required": [ + "name" + ], + "description": "The parameters used to check the availability of the managed hsm name." + }, + "CheckMhsmNameAvailabilityResult": { + "type": "object", + "properties": { + "nameAvailable": { + "readOnly": true, + "type": "boolean", + "description": "A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used." + }, + "reason": { + "readOnly": true, + "type": "string", + "description": "The reason that a managed hsm name could not be used. The reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": true + } + }, + "message": { + "readOnly": true, + "type": "string", + "description": "An error message explaining the Reason value in more detail." + } + }, + "description": "The CheckMhsmNameAvailability operation response." + }, + "ManagedHSMSecurityDomainProperties": { + "type": "object", + "properties": { + "activationStatus": { + "readOnly": true, + "type": "string", + "description": "Activation Status", + "enum": [ + "Active", + "NotActivated", + "Unknown", + "Failed" + ], + "x-ms-enum": { + "name": "ActivationStatus", + "modelAsString": true, + "values": [ + { + "value": "Active", + "description": "The managed HSM Pool is active." + }, + { + "value": "NotActivated", + "description": "The managed HSM Pool is not yet activated." + }, + { + "value": "Unknown", + "description": "An unknown error occurred while activating managed hsm." + }, + { + "value": "Failed", + "description": "Failed to activate managed hsm." + } + ] + } + }, + "activationStatusMessage": { + "readOnly": true, + "type": "string", + "description": "Activation Status Message." + } + }, + "description": "The security domain properties of the managed hsm." + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + }, + "ManagedHsmResourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the resource group that contains the managed HSM pool.", + "x-ms-parameter-location": "method" + }, + "MHSMPrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the private endpoint connection associated with the managed hsm pool.", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/providers.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/providers.json new file mode 100644 index 000000000000..8e13cf831875 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/providers.json @@ -0,0 +1,288 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "paths": { + "/providers/Microsoft.KeyVault/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available Key Vault Rest API operations.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Lists available Rest API operations.": { + "$ref": "./examples/listOperations.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "OperationListResult": { + "description": "Result of the request to list Storage operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [], + "description": "List of Storage operations supported by the Storage resource provider." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of operations." + } + }, + "type": "object" + }, + "Operation": { + "description": "Key Vault REST API operation definition.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "description": "Display metadata associated with the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft Key Vault.", + "type": "string" + }, + "resource": { + "description": "Resource on which the operation is performed etc.", + "type": "string" + }, + "operation": { + "description": "Type of operation: get, read, delete, etc.", + "type": "string" + }, + "description": { + "description": "Description of operation.", + "type": "string" + } + } + }, + "origin": { + "type": "string", + "description": "The origin of operations." + }, + "properties": { + "description": "Properties of operation, include metric specifications.", + "x-ms-client-flatten": true, + "x-ms-client-name": "OperationProperties", + "$ref": "#/definitions/OperationProperties" + }, + "isDataAction": { + "type": "boolean", + "description": "Property to specify whether the action is a data action." + } + } + }, + "OperationProperties": { + "description": "Properties of operation, include metric specifications.", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ServiceSpecification", + "description": "One property of operation, include metric specifications." + } + }, + "type": "object" + }, + "ServiceSpecification": { + "description": "One property of operation, include log specifications.", + "properties": { + "logSpecifications": { + "description": "Log specifications of operation.", + "type": "array", + "items": { + "$ref": "#/definitions/LogSpecification" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "metricSpecifications": { + "description": "Metric specifications of operation.", + "type": "array", + "items": { + "$ref": "#/definitions/MetricSpecification" + }, + "x-ms-identifiers": [ + "name" + ] + } + }, + "type": "object" + }, + "LogSpecification": { + "description": "Log specification of operation.", + "properties": { + "name": { + "type": "string", + "description": "Name of log specification." + }, + "displayName": { + "type": "string", + "description": "Display name of log specification." + }, + "blobDuration": { + "type": "string", + "description": "Blob duration of specification." + } + }, + "type": "object" + }, + "MetricSpecification": { + "description": "Metric specification of operation.", + "properties": { + "name": { + "type": "string", + "description": "Name of metric specification." + }, + "displayName": { + "type": "string", + "description": "Display name of metric specification." + }, + "displayDescription": { + "type": "string", + "description": "Display description of metric specification." + }, + "unit": { + "type": "string", + "description": "The metric unit. Possible values include: 'Bytes', 'Count', 'Milliseconds'." + }, + "aggregationType": { + "type": "string", + "description": "The metric aggregation type. Possible values include: 'Average', 'Count', 'Total'." + }, + "supportedAggregationTypes": { + "type": "array", + "description": "The supported aggregation types for the metrics.", + "items": { + "type": "string" + } + }, + "supportedTimeGrainTypes": { + "type": "array", + "description": "The supported time grain types for the metrics.", + "items": { + "type": "string" + } + }, + "lockAggregationType": { + "type": "string", + "description": "The metric lock aggregation type." + }, + "dimensions": { + "type": "array", + "description": "The dimensions of metric", + "items": { + "$ref": "#/definitions/DimensionProperties" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "fillGapWithZero": { + "type": "boolean", + "description": "Property to specify whether to fill gap with zero." + }, + "internalMetricName": { + "type": "string", + "description": "The internal metric name." + } + }, + "type": "object" + }, + "DimensionProperties": { + "description": "Type of operation: get, read, delete, etc.", + "properties": { + "name": { + "type": "string", + "description": "Name of dimension." + }, + "displayName": { + "type": "string", + "description": "Display name of dimension." + }, + "toBeExportedForShoebox": { + "type": "boolean", + "description": "Property to specify whether the dimension should be exported for Shoebox." + } + }, + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/secrets.json b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/secrets.json new file mode 100644 index 000000000000..2df4a24dca65 --- /dev/null +++ b/specification/keyvault/resource-manager/Microsoft.KeyVault/preview/2024-12-01-preview/secrets.json @@ -0,0 +1,491 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-12-01-preview", + "title": "KeyVaultManagementClient", + "description": "The Azure management API provides a RESTful set of web services that interact with Azure Key Vault." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets/{secretName}": { + "put": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_CreateOrUpdate", + "description": "Create or update a secret in a key vault in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "Name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecretCreateOrUpdateParameters" + }, + "description": "Parameters to create or update the secret" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Created or updated vault", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "200": { + "description": "Created or updated secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create a secret": { + "$ref": "./examples/createSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "patch": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_Update", + "description": "Update a secret in the specified subscription. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "description": "Name of the vault" + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{1,127}$", + "description": "Name of the secret" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SecretPatchParameters" + }, + "description": "Parameters to patch the secret" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "201": { + "description": "Patched secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "200": { + "description": "Patched secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Update a secret": { + "$ref": "./examples/updateSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + }, + "get": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_Get", + "description": "Gets the specified secret. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "secretName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the secret." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Retrieved secret", + "schema": { + "$ref": "#/definitions/Secret" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a secret": { + "$ref": "./examples/getSecret.json" + } + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/secrets": { + "get": { + "tags": [ + "Secrets" + ], + "operationId": "Secrets_List", + "description": "The List operation gets information about the secrets in a vault. NOTE: This API is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Resource Group to which the vault belongs." + }, + { + "name": "vaultName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the vault." + }, + { + "name": "$top", + "in": "query", + "type": "integer", + "format": "int32", + "description": "Maximum number of results to return." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Get information about secrets in the specified vault.", + "schema": { + "$ref": "#/definitions/SecretListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List secrets in the vault": { + "$ref": "./examples/listSecrets.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ] + } + } + }, + "definitions": { + "Attributes": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "x-ms-client-name": "NotBefore", + "type": "integer", + "format": "unixtime", + "description": "Not before date in seconds since 1970-01-01T00:00:00Z." + }, + "exp": { + "x-ms-client-name": "Expires", + "type": "integer", + "format": "unixtime", + "description": "Expiry date in seconds since 1970-01-01T00:00:00Z." + }, + "created": { + "type": "integer", + "format": "unixtime", + "readOnly": true, + "description": "Creation time in seconds since 1970-01-01T00:00:00Z." + }, + "updated": { + "type": "integer", + "format": "unixtime", + "readOnly": true, + "description": "Last updated time in seconds since 1970-01-01T00:00:00Z." + } + }, + "description": "The object attributes managed by the KeyVault service.", + "type": "object" + }, + "SecretProperties": { + "properties": { + "value": { + "type": "string", + "description": "The value of the secret. NOTE: 'value' will never be returned from the service, as APIs using this model are is intended for internal use in ARM deployments. Users should use the data-plane REST service for interaction with vault secrets." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The attributes of the secret." + }, + "secretUri": { + "type": "string", + "description": "The URI to retrieve the current version of the secret.", + "readOnly": true + }, + "secretUriWithVersion": { + "type": "string", + "description": "The URI to retrieve the specific version of the secret.", + "readOnly": true + } + }, + "description": "Properties of the secret", + "type": "object" + }, + "SecretPatchProperties": { + "properties": { + "value": { + "type": "string", + "description": "The value of the secret." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The attributes of the secret." + } + }, + "description": "Properties of the secret", + "type": "object" + }, + "SecretAttributes": { + "allOf": [ + { + "$ref": "#/definitions/Attributes" + } + ], + "description": "The secret management attributes.", + "type": "object" + }, + "SecretCreateOrUpdateParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the secret. " + }, + "properties": { + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret" + } + }, + "description": "Parameters for creating or updating a secret", + "required": [ + "properties" + ], + "x-ms-azure-resource": true, + "type": "object" + }, + "SecretPatchParameters": { + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags that will be assigned to the secret. " + }, + "properties": { + "$ref": "#/definitions/SecretPatchProperties", + "description": "Properties of the secret" + } + }, + "description": "Parameters for patching a secret", + "x-ms-azure-resource": true, + "type": "object" + }, + "Secret": { + "properties": { + "properties": { + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "./keyvault.json#/definitions/Resource" + } + ], + "description": "Resource information with extended details.", + "type": "object" + }, + "SecretListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + }, + "description": "The list of secrets." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of secrets." + } + }, + "description": "List of secrets", + "type": "object" + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Client Api Version." + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + } +} diff --git a/specification/keyvault/resource-manager/readme.go.md b/specification/keyvault/resource-manager/readme.go.md index 8ae86cb11f26..56bf876e1724 100644 --- a/specification/keyvault/resource-manager/readme.go.md +++ b/specification/keyvault/resource-manager/readme.go.md @@ -15,6 +15,8 @@ module-name: sdk/resourcemanager/keyvault/armkeyvault module: github.com/Azure/azure-sdk-for-go/$(module-name) output-folder: $(go-sdk-folder)/$(module-name) azure-arm: true +modelerfour: + lenient-model-deduplication: true ``` ### Go multi-api diff --git a/specification/keyvault/resource-manager/readme.md b/specification/keyvault/resource-manager/readme.md index 492452774df3..74a0fe38dde3 100644 --- a/specification/keyvault/resource-manager/readme.md +++ b/specification/keyvault/resource-manager/readme.md @@ -44,6 +44,21 @@ input-file: - Microsoft.KeyVault/stable/2024-11-01/secrets.json ``` +### Tag: package-preview-2024-12 + +These settings apply only when `--tag=package-preview-2024-12` is specified on the command line. + +```yaml $(tag) == 'package-preview-2024-12' +input-file: + - Microsoft.KeyVault/preview/2024-12-01-preview/common.json + - Microsoft.KeyVault/preview/2024-12-01-preview/keys.json + - Microsoft.KeyVault/preview/2024-12-01-preview/keysManagedHsm.json + - Microsoft.KeyVault/preview/2024-12-01-preview/keyvault.json + - Microsoft.KeyVault/preview/2024-12-01-preview/managedHsm.json + - Microsoft.KeyVault/preview/2024-12-01-preview/providers.json + - Microsoft.KeyVault/preview/2024-12-01-preview/secrets.json +``` + ### Tag: package-preview-2024-04 These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. From a26af9acb30387724eff64229ba7f3259600681a Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:10:42 +0800 Subject: [PATCH 21/82] [Container Service] Update readme.python.md (#32112) * Update readme.python.md * fix cspell --------- Co-authored-by: Yuchao Yan --- cSpell.json | 2 +- .../aks/readme.python.md | 892 ------------------ 2 files changed, 1 insertion(+), 893 deletions(-) diff --git a/cSpell.json b/cSpell.json index 28b0332d4e25..e88561a8c54d 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1799,7 +1799,7 @@ ] }, { - "filename": "**/specification/compute/resource-manager/readme.python.md", + "filename": "**/specification/**/readme.python.md", "words": [ "multiapiscript", "modelerfour" diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/readme.python.md b/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/readme.python.md index fc0f3948e543..9fcc6458dcbc 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/readme.python.md +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/readme.python.md @@ -20,89 +20,8 @@ default-api-version: "2024-09-01" multiapi: true batch: - tag: package-2024-09 - - tag: package-preview-2024-09 - - tag: package-2024-08 - - tag: package-2024-07 - - tag: package-preview-2024-07 - - tag: package-preview-2024-06 - - tag: package-2024-05 - - tag: package-preview-2024-05 - - tag: package-preview-2024-04 - - tag: package-preview-2024-03 - - tag: package-2024-02 - - tag: package-preview-2024-02 - - tag: package-2024-01 - - tag: package-preview-2024-01 - - tag: package-2023-11 - - tag: package-preview-2023-11 - - tag: package-2023-10 - - tag: package-preview-2023-10 - - tag: package-2023-09 - - tag: package-preview-2023-09 - - tag: package-2023-08 - - tag: package-preview-2023-08 - - tag: package-2023-07 - - tag: package-preview-2023-07 - - tag: package-2023-06 - - tag: package-preview-2023-06 - - tag: package-2023-05 - - tag: package-preview-2023-05 - - tag: package-2023-04 - - tag: package-preview-2023-04 - - tag: package-2023-03 - - tag: package-preview-2023-03 - - tag: package-2023-02 - - tag: package-preview-2023-02 - - tag: package-2023-01 - - tag: package-preview-2023-01-only - - tag: package-2022-11 - - tag: package-preview-2022-11-only - - tag: package-preview-2022-10-only - - tag: package-2022-09 - - tag: package-preview-2022-09 - - tag: package-preview-2022-08-03-only - - tag: package-preview-2022-08-only - - tag: package-2022-07 - - tag: package-preview-2022-07 - - tag: package-2022-06 - - tag: package-preview-2022-06 - - tag: package-preview-2022-05 - - tag: package-2022-04 - - tag: package-preview-2022-04 - - tag: package-2022-03 - - tag: package-preview-2022-03 - - tag: package-2022-02 - - tag: package-preview-2022-02 - - tag: package-2022-01 - - tag: package-preview-2022-01 - - tag: package-preview-2021-11 - - tag: package-2021-10 - - tag: package-2021-09 - - tag: package-2021-08 - - tag: package-2021-07 - - tag: package-2021-05 - - tag: package-2021-03 - - tag: package-2021-02 - - tag: package-2020-12 - tag: package-2020-11 - - tag: package-2020-09-01-only - - tag: package-2020-07-01-only - - tag: package-2020-06-01-only - - tag: package-2020-04-01-only - tag: package-2020-03-01-only - - tag: package-2020-02-01-only - - tag: package-2020-01-01-only - - tag: package-2019-11-01-only - - tag: package-2019-10-27-preview-only - - tag: package-2019-10-01-only - - tag: package-2019-08-01-only - - tag: package-2019-06-01-only - - tag: package-2019-04-30-only - - tag: package-2019-04-01-only - - tag: package-2019-02-only - - tag: package-2018-09-preview-only - - tag: package-2018-08-preview-only - - tag: package-2018-03-only - tag: package-2019-09-preview-only - tag: package-2017-07 - multiapiscript: true @@ -111,7 +30,6 @@ batch: ``` yaml $(multiapiscript) output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/ perform-load: false -clear-output-folder: false ``` ### Tag: package-2024-09 and python @@ -124,646 +42,6 @@ namespace: azure.mgmt.containerservice.v2024_09_01 output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_09_01 ``` -### Tag: package-preview-2024-09 and python - -These settings apply only when `--tag=package-preview-2024-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-09' && $(python) -namespace: azure.mgmt.containerservice.v2024_09_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_09_02_preview -``` - -### Tag: package-2024-08 and python - -These settings apply only when `--tag=package-2024-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2024-08' && $(python) -namespace: azure.mgmt.containerservice.v2024_08_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_08_01 -``` - -### Tag: package-2024-07 and python - -These settings apply only when `--tag=package-2024-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2024-07' && $(python) -namespace: azure.mgmt.containerservice.v2024_07_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_07_01 -``` - -### Tag: package-preview-2024-07 and python - -These settings apply only when `--tag=package-preview-2024-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-07' && $(python) -namespace: azure.mgmt.containerservice.v2024_07_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_07_02_preview -``` - -### Tag: package-preview-2024-06 and python - -These settings apply only when `--tag=package-preview-2024-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-06' && $(python) -namespace: azure.mgmt.containerservice.v2024_06_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_06_02_preview -``` - -### Tag: package-2024-05 and python - -These settings apply only when `--tag=package-2024-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2024-05' && $(python) -namespace: azure.mgmt.containerservice.v2024_05_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_05_01 -``` - -### Tag: package-preview-2024-05 and python - -These settings apply only when `--tag=package-preview-2024-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-05' && $(python) -namespace: azure.mgmt.containerservice.v2024_05_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_05_02_preview -``` - -### Tag: package-preview-2024-04 and python - -These settings apply only when `--tag=package-preview-2024-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-04' && $(python) -namespace: azure.mgmt.containerservice.v2024_04_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_04_02_preview -``` - -### Tag: package-preview-2024-03 and python - -These settings apply only when `--tag=package-preview-2024-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-03' && $(python) -namespace: azure.mgmt.containerservice.v2024_03_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_03_02_preview -``` - -### Tag: package-2024-02 and python - -These settings apply only when `--tag=package-2024-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2024-02' && $(python) -namespace: azure.mgmt.containerservice.v2024_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_02_01 -``` - -### Tag: package-preview-2024-02 and python - -These settings apply only when `--tag=package-preview-2024-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-02' && $(python) -namespace: azure.mgmt.containerservice.v2024_02_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_02_02_preview -``` - -### Tag: package-2024-01 and python - -These settings apply only when `--tag=package-2024-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2024-01' && $(python) -namespace: azure.mgmt.containerservice.v2024_01_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_01_01 -``` - -### Tag: package-preview-2024-01 and python - -These settings apply only when `--tag=package-preview-2024-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2024-01' && $(python) -namespace: azure.mgmt.containerservice.v2024_01_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2024_01_02_preview -``` - -### Tag: package-2023-11 and python - -These settings apply only when `--tag=package-2023-11 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-11' && $(python) -namespace: azure.mgmt.containerservice.v2023_11_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_11_01 -``` - -### Tag: package-preview-2023-11 and python - -These settings apply only when `--tag=package-preview-2023-11 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-11' && $(python) -namespace: azure.mgmt.containerservice.v2023_11_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_11_02_preview -``` - -### Tag: package-2023-10 and python - -These settings apply only when `--tag=package-2023-10 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-10' && $(python) -namespace: azure.mgmt.containerservice.v2023_10_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_10_01 -``` - -### Tag: package-preview-2023-10 and python - -These settings apply only when `--tag=package-preview-2023-10 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-10' && $(python) -namespace: azure.mgmt.containerservice.v2023_10_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_10_02_preview -``` - -### Tag: package-2023-09 and python - -These settings apply only when `--tag=package-2023-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-09' && $(python) -namespace: azure.mgmt.containerservice.v2023_09_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_09_01 -``` - -### Tag: package-preview-2023-09 and python - -These settings apply only when `--tag=package-preview-2023-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-09' && $(python) -namespace: azure.mgmt.containerservice.v2023_09_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_09_02_preview -``` - -### Tag: package-2023-08 and python - -These settings apply only when `--tag=package-2023-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-08' && $(python) -namespace: azure.mgmt.containerservice.v2023_08_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_08_01 -``` - -### Tag: package-preview-2023-08 and python - -These settings apply only when `--tag=package-preview-2023-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-08' && $(python) -namespace: azure.mgmt.containerservice.v2023_08_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_08_02_preview -``` - -### Tag: package-2023-07 and python - -These settings apply only when `--tag=package-2023-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-07' && $(python) -namespace: azure.mgmt.containerservice.v2023_07_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_07_01 -``` - -### Tag: package-preview-2023-07 and python - -These settings apply only when `--tag=package-preview-2023-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-07' && $(python) -namespace: azure.mgmt.containerservice.v2023_07_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_07_02_preview -``` - -### Tag: package-2023-06 and python - -These settings apply only when `--tag=package-2023-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-06' && $(python) -namespace: azure.mgmt.containerservice.v2023_06_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_06_01 -``` - -### Tag: package-preview-2023-06 and python - -These settings apply only when `--tag=package-preview-2023-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-06' && $(python) -namespace: azure.mgmt.containerservice.v2023_06_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_06_02_preview -``` - -### Tag: package-2023-05 and python - -These settings apply only when `--tag=package-2023-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-05' && $(python) -namespace: azure.mgmt.containerservice.v2023_05_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_05_01 -``` - -### Tag: package-preview-2023-05 and python - -These settings apply only when `--tag=package-preview-2023-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-05' && $(python) -namespace: azure.mgmt.containerservice.v2023_05_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_05_02_preview -``` - -### Tag: package-2023-04 and python - -These settings apply only when `--tag=package-2023-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-04' && $(python) -namespace: azure.mgmt.containerservice.v2023_04_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_04_01 -``` - -### Tag: package-preview-2023-04 and python - -These settings apply only when `--tag=package-preview-2023-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-04' && $(python) -namespace: azure.mgmt.containerservice.v2023_04_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_04_02_preview -``` - -### Tag: package-2023-03 and python - -These settings apply only when `--tag=package-2023-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-03' && $(python) -namespace: azure.mgmt.containerservice.v2023_03_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_03_01 -``` - -### Tag: package-preview-2023-03 and python - -These settings apply only when `--tag=package-preview-2023-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-03' && $(python) -namespace: azure.mgmt.containerservice.v2023_03_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_03_02_preview -``` - -### Tag: package-2023-02 and python - -These settings apply only when `--tag=package-2023-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-02' && $(python) -namespace: azure.mgmt.containerservice.v2023_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_02_01 -``` - -### Tag: package-preview-2023-02 and python - -These settings apply only when `--tag=package-preview-2023-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-02' && $(python) -namespace: azure.mgmt.containerservice.v2023_02_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_02_02_preview -``` - -### Tag: package-preview-2023-01-only and python - -These settings apply only when `--tag=package-preview-2023-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2023-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2023_01_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_01_02_preview -``` - -### Tag: package-2023-01 and python - -These settings apply only when `--tag=package-2023-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-01' && $(python) -namespace: azure.mgmt.containerservice.v2023_01_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2023_01_01 -``` - -### Tag: package-2022-11 and python - -These settings apply only when `--tag=package-2022-11 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-11' && $(python) -namespace: azure.mgmt.containerservice.v2022_11_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_11_01 -``` - -### Tag: package-preview-2022-11-only and python - -These settings apply only when `--tag=package-preview-2022-11-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-11-only' && $(python) -namespace: azure.mgmt.containerservice.v2022_11_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_11_02_preview -``` - -### Tag: package-preview-2022-10-only and python - -These settings apply only when `--tag=package-preview-2022-10-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-10-only' && $(python) -namespace: azure.mgmt.containerservice.v2022_10_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_10_02_preview -``` - -### Tag: package-2022-09 and python - -These settings apply only when `--tag=package-2022-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-09' && $(python) -namespace: azure.mgmt.containerservice.v2022_09_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_09_01 -``` - -### Tag: package-preview-2022-09 and python - -These settings apply only when `--tag=package-preview-2022-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-09' && $(python) -namespace: azure.mgmt.containerservice.v2022_09_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_09_02_preview -``` - -### Tag: package-preview-2022-08-03-only and python - -These settings apply only when `--tag=package-preview-2022-08-03-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-08-03-only' && $(python) -namespace: azure.mgmt.containerservice.v2022_08_03_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_08_03_preview -``` - -### Tag: package-preview-2022-08-only and python - -These settings apply only when `--tag=package-preview-2022-08-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-08-only' && $(python) -namespace: azure.mgmt.containerservice.v2022_08_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_08_02_preview -``` - -### Tag: package-2022-07 and python - -These settings apply only when `--tag=package-2022-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-07' && $(python) -namespace: azure.mgmt.containerservice.v2022_07_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_07_01 -``` - -### Tag: package-preview-2022-07 and python - -These settings apply only when `--tag=package-preview-2022-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-07' && $(python) -namespace: azure.mgmt.containerservice.v2022_07_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_07_02_preview -``` - -### Tag: package-2022-06 and python - -These settings apply only when `--tag=package-2022-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-06' && $(python) -namespace: azure.mgmt.containerservice.v2022_06_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_06_01 -``` - -### Tag: package-preview-2022-06 and python - -These settings apply only when `--tag=package-preview-2022-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-06' && $(python) -namespace: azure.mgmt.containerservice.v2022_06_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_06_02_preview -``` - -### Tag: package-preview-2022-05 and python - -These settings apply only when `--tag=package-preview-2022-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-05' && $(python) -namespace: azure.mgmt.containerservice.v2022_05_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_05_02_preview -``` - -### Tag: package-2022-04 and python - -These settings apply only when `--tag=package-2022-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-04' && $(python) -namespace: azure.mgmt.containerservice.v2022_04_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_04_01 -``` - -### Tag: package-preview-2022-04 and python - -These settings apply only when `--tag=package-preview-2022-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-04' && $(python) -namespace: azure.mgmt.containerservice.v2022_04_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_04_02_preview -``` - -### Tag: package-2022-03 and python - -These settings apply only when `--tag=package-2022-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-03' && $(python) -namespace: azure.mgmt.containerservice.v2022_03_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_03_01 -``` - -### Tag: package-preview-2022-03 and python - -These settings apply only when `--tag=package-preview-2022-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-03' && $(python) -namespace: azure.mgmt.containerservice.v2022_03_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_03_02_preview -``` - -### Tag: package-2022-02 and python - -These settings apply only when `--tag=package-2022-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-02' && $(python) -namespace: azure.mgmt.containerservice.v2022_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_02_01 -``` - -### Tag: package-preview-2022-02 and python - -These settings apply only when `--tag=package-preview-2022-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-02' && $(python) -namespace: azure.mgmt.containerservice.v2022_02_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_02_02_preview -``` - -### Tag: package-2022-01 and python - -These settings apply only when `--tag=package-2022-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-01' && $(python) -namespace: azure.mgmt.containerservice.v2022_01_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_01_01 -``` - -### Tag: package-preview-2022-01 and python - -These settings apply only when `--tag=package-preview-2022-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2022-01' && $(python) -namespace: azure.mgmt.containerservice.v2022_01_02_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2022_01_02_preview -``` - -### Tag: package-preview-2021-11 and python - -These settings apply only when `--tag=package-preview-2021-11 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-preview-2021-11' && $(python) -namespace: azure.mgmt.containerservice.v2021_11_01_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_11_01_preview -``` - -### Tag: package-2021-10 and python - -These settings apply only when `--tag=package-2021-10 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-10' && $(python) -namespace: azure.mgmt.containerservice.v2021_10_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_10_01 -``` - -### Tag: package-2021-09 and python - -These settings apply only when `--tag=package-2021-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-09' && $(python) -namespace: azure.mgmt.containerservice.v2021_09_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_09_01 -``` - -### Tag: package-2021-08 and python - -These settings apply only when `--tag=package-2021-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-08' && $(python) -namespace: azure.mgmt.containerservice.v2021_08_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_08_01 -``` - -### Tag: package-2021-07 and python - -These settings apply only when `--tag=package-2021-07 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-07' && $(python) -namespace: azure.mgmt.containerservice.v2021_07_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_07_01 -``` - -### Tag: package-2021-05 and python - -These settings apply only when `--tag=package-2021-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-05' && $(python) -namespace: azure.mgmt.containerservice.v2021_05_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_05_01 -``` - -### Tag: package-2021-03 and python - -These settings apply only when `--tag=package-2021-03 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-03' && $(python) -namespace: azure.mgmt.containerservice.v2021_03_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_03_01 -``` - -### Tag: package-2021-02 and python - -These settings apply only when `--tag=package-2021-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-02' && $(python) -namespace: azure.mgmt.containerservice.v2021_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2021_02_01 -``` - -### Tag: package-2020-12 and python - -These settings apply only when `--tag=package-2020-12 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-12' && $(python) -namespace: azure.mgmt.containerservice.v2020_12_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_12_01 -``` - ### Tag: package-2020-11 and python These settings apply only when `--tag=package-2020-11 --python` is specified on the command line. @@ -774,46 +52,6 @@ namespace: azure.mgmt.containerservice.v2020_11_01 output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_11_01 ``` -### Tag: package-2020-09-01-only and python - -These settings apply only when `--tag=package-2020-09-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-09-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_09_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_09_01 -``` - -### Tag: package-2020-07-01-only and python - -These settings apply only when `--tag=package-2020-07-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-07-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_07_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_07_01 -``` - -### Tag: package-2020-06-01-only and python - -These settings apply only when `--tag=package-2020-06-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-06-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_06_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_06_01 -``` - -### Tag: package-2020-04-01-only and python - -These settings apply only when `--tag=package-2020-04-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-04-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_04_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_04_01 -``` - ### Tag: package-2020-03-01-only and python These settings apply only when `--tag=package-2020-03-01-only --python` is specified on the command line. @@ -824,136 +62,6 @@ namespace: azure.mgmt.containerservice.v2020_03_01 output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_03_01 ``` -### Tag: package-2020-02-01-only and python - -These settings apply only when `--tag=package-2020-02-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-02-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_02_01 -``` - -### Tag: package-2020-01-01-only and python - -These settings apply only when `--tag=package-2020-01-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-01-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2020_01_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2020_01_01 -``` - -### Tag: package-2019-11-01-only and python - -These settings apply only when `--tag=package-2019-11-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-11-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_11_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_11_01 -``` - -### Tag: package-2019-10-27-preview-only and python - -These settings apply only when `--tag=package-2019-10-27-preview-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-10-27-preview-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_10_27_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_27_preview -``` - -### Tag: package-2019-10-01-only and python - -These settings apply only when `--tag=package-2019-10-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-10-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_10_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_10_01 -``` - -### Tag: package-2019-08-01-only and python - -These settings apply only when `--tag=package-2019-08-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-08-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_08_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_08_01 -``` - -### Tag: package-2019-06-01-only and python - -These settings apply only when `--tag=package-2019-06-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-06-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_06_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_06_01 -``` - -### Tag: package-2019-04-30-only and python - -These settings apply only when `--tag=package-2019-04-30-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-04-30-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_04_30 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_30 -``` - -### Tag: package-2019-04-01-only and python - -These settings apply only when `--tag=package-2019-04-01-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-04-01-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_04_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_04_01 -``` - -### Tag: package-2019-02-only and python - -These settings apply only when `--tag=package-2019-02-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-02-only' && $(python) -namespace: azure.mgmt.containerservice.v2019_02_01 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2019_02_01 -``` - -### Tag: package-2018-09-preview-only and python - -These settings apply only when `--tag=package-2018-09-preview-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-09-preview-only' && $(python) -namespace: azure.mgmt.containerservice.v2018_09_30_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_09_30_preview -``` - -### Tag: package-2018-08-preview-only and python - -These settings apply only when `--tag=package-2018-08-preview-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-08-preview-only' && $(python) -namespace: azure.mgmt.containerservice.v2018_08_01_preview -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_08_01_preview -``` - -### Tag: package-2018-03-only and python - -These settings apply only when `--tag=package-2018-03-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-03-only' && $(python) -namespace: azure.mgmt.containerservice.v2018_03_31 -output-folder: $(python-sdks-folder)/containerservice/azure-mgmt-containerservice/azure/mgmt/containerservice/v2018_03_31 -``` - ### Tag: package-2019-09-preview-only and python These settings apply only when `--tag=package-2019-09-preview-only --python` is specified on the command line. From b262fe5af1465962dba6e4539775c9897b35d23f Mon Sep 17 00:00:00 2001 From: Tianen Date: Wed, 15 Jan 2025 00:21:32 +0800 Subject: [PATCH 22/82] [BUG] Github Action For Sdk Suppressions (#32124) * add filter suppression * parse changefiles --- .github/workflows/SDK-Suppressions-Label.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/SDK-Suppressions-Label.yaml b/.github/workflows/SDK-Suppressions-Label.yaml index 20db6347056f..2983c88c04c0 100644 --- a/.github/workflows/SDK-Suppressions-Label.yaml +++ b/.github/workflows/SDK-Suppressions-Label.yaml @@ -29,8 +29,11 @@ jobs: run: | . eng/scripts/ChangedFiles-Functions.ps1 $changedFiles = @(Get-ChangedFiles) - echo "PR Changed files: $changedFiles" - Add-Content -Path $env:GITHUB_OUTPUT -Value "changedFiles=$changedFiles" + $changedFilesArray = $changedFiles -split ' ' + $yamlFilesArray = $changedFilesArray | Where-Object { $_ -match 'sdk-suppressions\.yaml$' } + $yamlFiles = $yamlFilesArray -join ' ' + echo "PR Changed sdk-suppressions.yaml files: $yamlFiles" + Add-Content -Path $env:GITHUB_OUTPUT -Value "changedFiles=$yamlFiles" - name: Get GitHub PullRequest Context uses: actions/github-script@v7 From 5b9edd440c04c9b8e078846b726cbb1ecc914bc9 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 14 Jan 2025 15:40:18 -0800 Subject: [PATCH 23/82] Spelling: Allow compound words, fix JSON syntax (#32140) --- cSpell.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cSpell.json b/cSpell.json index e88561a8c54d..258b40e7531d 100644 --- a/cSpell.json +++ b/cSpell.json @@ -13,6 +13,7 @@ "subchannel", "umls" ], + "allowCompoundWords ": true, "dictionaryDefinitions": [ { "name": "custom-words", @@ -54,7 +55,7 @@ "filename": "**/specification/playwrighttesting/**/*", "words": [ "microsoftplaywrighttesting", - "playwrighttesting", + "playwrighttesting" ] }, { From f7e9063b96e4c2540571309c50cd762cf1ad9399 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 14 Jan 2025 16:06:11 -0800 Subject: [PATCH 24/82] remove erroneous package inclusion during package-properties evaluation (#32129) Co-authored-by: Scott Beddall --- eng/common/scripts/Package-Properties.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/common/scripts/Package-Properties.ps1 b/eng/common/scripts/Package-Properties.ps1 index bd67230b7fe0..999d818b4b03 100644 --- a/eng/common/scripts/Package-Properties.ps1 +++ b/eng/common/scripts/Package-Properties.ps1 @@ -173,7 +173,7 @@ function Get-PrPkgProperties([string]$InputDiffJson) { foreach ($file in $targetedFiles) { $filePath = (Join-Path $RepoRoot $file) - $shouldInclude = $filePath -like "$pkgDirectory*" + $shouldInclude = $filePath -like (Join-Path "$pkgDirectory" "*") if ($shouldInclude) { $packagesWithChanges += $pkg From 3feb9e396d38c4c0479126d3f697ff86a6ce8693 Mon Sep 17 00:00:00 2001 From: magodo Date: Wed, 15 Jan 2025 13:04:54 +1100 Subject: [PATCH 25/82] Terraform: Update models to include ARG table selection feature and import block export feature (#31546) * Terraform: Update models to include ARG table selection feature and import block export feature --- cSpell.json | 7 +++ .../models.tsp | 26 ++++++++++ .../preview/2023-07-01-preview/export.json | 49 +++++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/cSpell.json b/cSpell.json index 258b40e7531d..72a4cc10767d 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1743,6 +1743,13 @@ "azapi" ] }, + { + "filename": "**/specification/terraform/Microsoft.AzureTerraform.Management/**/*.tsp", + "words": [ + "azurerm", + "azapi" + ] + }, { "filename": "**/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/**/*.json", "words": [ diff --git a/specification/terraform/Microsoft.AzureTerraform.Management/models.tsp b/specification/terraform/Microsoft.AzureTerraform.Management/models.tsp index 154a5b737b3c..2d967fb2608e 100644 --- a/specification/terraform/Microsoft.AzureTerraform.Management/models.tsp +++ b/specification/terraform/Microsoft.AzureTerraform.Management/models.tsp @@ -33,6 +33,23 @@ union targetProvider { azapi: "azapi", } +@doc("The Azure Resource Graph Authorization Scope Filter parameter") +union authorizationScopeFilter { + string, + + @doc("Returns assignments for the given scope and all child scopes.") + AtScopeAndBelow: "AtScopeAndBelow", + + @doc("Returns assignments for the given scope and all parent scopes, but not child scopes.") + AtScopeAndAbove: "AtScopeAndAbove", + + @doc("Returns assignments for the given scope, all parent scopes, and all child scopes.") + AtScopeAboveAndBelow: "AtScopeAboveAndBelow", + + @doc("Returns assignments only for the given scope; no parent or child scopes are included.") + AtScopeExact: "AtScopeExact", +} + @doc("The base export parameter") @discriminator("type") model BaseExportModel { @@ -62,6 +79,12 @@ model ExportQuery extends BaseExportModel { @doc("The parameter type") type: "ExportQuery"; + + @doc("The ARG table name") + table?: string = "Resources"; + + @doc("The ARG Scope Filter parameter") + authorizationScopeFilter?: authorizationScopeFilter; } @doc("Export parameter for individual resources.") @@ -102,6 +125,9 @@ model ExportResult { @doc("The Terraform configuration content") configuration?: string; + @doc("The Terraform import blocks for the current export, which users can use to run \"terraform plan\" with to import the resources") + `import`?: string; + @doc("A list of Azure resources which are not exported to Terraform due to there is no corresponding resources in Terraform") skippedResources?: armResourceIdentifier[]; diff --git a/specification/terraform/resource-manager/Microsoft.AzureTerraform/preview/2023-07-01-preview/export.json b/specification/terraform/resource-manager/Microsoft.AzureTerraform/preview/2023-07-01-preview/export.json index 8a22f75e9007..566512e521b6 100644 --- a/specification/terraform/resource-manager/Microsoft.AzureTerraform/preview/2023-07-01-preview/export.json +++ b/specification/terraform/resource-manager/Microsoft.AzureTerraform/preview/2023-07-01-preview/export.json @@ -248,6 +248,15 @@ "type": "boolean", "description": "Whether to recursively list child resources of the query result", "default": false + }, + "table": { + "type": "string", + "description": "The ARG table name", + "default": "Resources" + }, + "authorizationScopeFilter": { + "$ref": "#/definitions/authorizationScopeFilter", + "description": "The ARG Scope Filter parameter" } }, "required": [ @@ -330,6 +339,10 @@ "type": "string", "description": "The Terraform configuration content" }, + "import": { + "type": "string", + "description": "The Terraform import blocks for the current export, which users can use to run \"terraform plan\" with to import the resources" + }, "skippedResources": { "type": "array", "description": "A list of Azure resources which are not exported to Terraform due to there is no corresponding resources in Terraform", @@ -426,6 +439,42 @@ } ] } + }, + "authorizationScopeFilter": { + "type": "string", + "description": "The Azure Resource Graph Authorization Scope Filter parameter", + "enum": [ + "AtScopeAndBelow", + "AtScopeAndAbove", + "AtScopeAboveAndBelow", + "AtScopeExact" + ], + "x-ms-enum": { + "name": "authorizationScopeFilter", + "modelAsString": true, + "values": [ + { + "name": "AtScopeAndBelow", + "value": "AtScopeAndBelow", + "description": "Returns assignments for the given scope and all child scopes." + }, + { + "name": "AtScopeAndAbove", + "value": "AtScopeAndAbove", + "description": "Returns assignments for the given scope and all parent scopes, but not child scopes." + }, + { + "name": "AtScopeAboveAndBelow", + "value": "AtScopeAboveAndBelow", + "description": "Returns assignments for the given scope, all parent scopes, and all child scopes." + }, + { + "name": "AtScopeExact", + "value": "AtScopeExact", + "description": "Returns assignments only for the given scope; no parent or child scopes are included." + } + ] + } } }, "parameters": {} From f2adf4bfd1ccd452d1dcdd66a7c346e987b8a8c4 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 14 Jan 2025 22:23:54 -0800 Subject: [PATCH 26/82] Remove extra space (#32147) --- cSpell.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cSpell.json b/cSpell.json index 72a4cc10767d..d89e94acbcc5 100644 --- a/cSpell.json +++ b/cSpell.json @@ -13,7 +13,7 @@ "subchannel", "umls" ], - "allowCompoundWords ": true, + "allowCompoundWords": true, "dictionaryDefinitions": [ { "name": "custom-words", From aa4ba9eb0ab21268118c11052b081ff5d2e01e4d Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Wed, 15 Jan 2025 14:57:08 +0800 Subject: [PATCH 27/82] Update readme.python.md (#32150) --- .../storage/resource-manager/readme.python.md | 193 ------------------ 1 file changed, 193 deletions(-) diff --git a/specification/storage/resource-manager/readme.python.md b/specification/storage/resource-manager/readme.python.md index 7cd4b958fbd3..0caace984aa2 100644 --- a/specification/storage/resource-manager/readme.python.md +++ b/specification/storage/resource-manager/readme.python.md @@ -22,33 +22,14 @@ default-api-version: "2023-05-01" clear-output-folder: true batch: - tag: package-2023-05 - - tag: package-2023-01 - - tag: package-2022-09 - - tag: package-2022-05 - - tag: package-2021-09 - - tag: package-2021-08 - - tag: package-2021-06 - - tag: package-2021-04 - - tag: package-2021-02 - - tag: package-2021-01 - - tag: package-2020-08-preview - tag: package-2019-06 - - tag: package-2019-04 - - tag: package-2018-11 - - tag: package-2018-07-only - - tag: package-2018-03-preview-only - - tag: package-2018-02 - tag: package-2017-10 - - tag: package-2017-06 - - tag: package-2016-12 - tag: package-2016-01 - - tag: package-2015-06 - multiapiscript: true ``` ``` yaml $(multiapiscript) output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/ -clear-output-folder: false perform-load: false ``` @@ -62,101 +43,6 @@ namespace: azure.mgmt.storage.v2023_05_01 output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2023_05_01 ``` -### Tag: package-2023-01 and python - -These settings apply only when `--tag=package-2023-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2023-01' -namespace: azure.mgmt.storage.v2023_01_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2023_01_01 -``` - -### Tag: package-2022-09 and python - -These settings apply only when `--tag=package-2022-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-09' -namespace: azure.mgmt.storage.v2022_09_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2022_09_01 -``` - -### Tag: package-2022-05 and python - -These settings apply only when `--tag=package-2022-05 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2022-05' -namespace: azure.mgmt.storage.v2022_05_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2022_05_01 -``` - -### Tag: package-2021-09 and python - -These settings apply only when `--tag=package-2021-09 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-09' -namespace: azure.mgmt.storage.v2021_09_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_09_01 -``` - -### Tag: package-2021-08 and python - -These settings apply only when `--tag=package-2021-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-08' -namespace: azure.mgmt.storage.v2021_08_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_08_01 -``` - -### Tag: package-2021-06 and python - -These settings apply only when `--tag=package-2021-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-06' -namespace: azure.mgmt.storage.v2021_06_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_06_01 -``` -### Tag: package-2021-04 and python - -These settings apply only when `--tag=package-2021-04 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-04' -namespace: azure.mgmt.storage.v2021_04_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_04_01 -``` -### Tag: package-2021-02 and python - -These settings apply only when `--tag=package-2021-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-02' -namespace: azure.mgmt.storage.v2021_02_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_02_01 -``` -### Tag: package-2021-01 and python - -These settings apply only when `--tag=package-2021-01 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-01' -namespace: azure.mgmt.storage.v2021_01_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2021_01_01 -``` -### Tag: package-2020-08-preview and python - -These settings apply only when `--tag=package-2020-08-preview --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2020-08-preview' -namespace: azure.mgmt.storage.v2020_08_01_preview -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2020_08_01_preview -``` ### Tag: package-2019-06 and python These settings apply only when `--tag=package-2019-06 --python` is specified on the command line. @@ -166,55 +52,6 @@ Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-04' -namespace: azure.mgmt.storage.v2019_04_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01 -``` - -### Tag: package-2018-11 and python - -These settings apply only when `--tag=package-2018-11 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-11' -namespace: azure.mgmt.storage.v2018_11_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2018_11_01 -``` - -### Tag: package-2018-07-only and python - -These settings apply only when `--tag=package-2018-07-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-07-only' -namespace: azure.mgmt.storage.v2018_07_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2018_07_01 -``` - -### Tag: package-2018-03-preview-only and python - -These settings apply only when `--tag=package-2018-03-preview-only --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-03-preview-only' -namespace: azure.mgmt.storage.v2018_03_01_preview -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2018_03_01_preview -``` - -### Tag: package-2018-02 and python - -These settings apply only when `--tag=package-2018-02 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2018-02' -namespace: azure.mgmt.storage.v2018_02_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2018_02_01 -``` ### Tag: package-2017-10 and python @@ -226,26 +63,6 @@ namespace: azure.mgmt.storage.v2017_10_01 output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2017_10_01 ``` -### Tag: package-2017-06 and python - -These settings apply only when `--tag=package-2017-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2017-06' -namespace: azure.mgmt.storage.v2017_06_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2017_06_01 -``` - -### Tag: package-2016-12 and python - -These settings apply only when `--tag=package-2016-12 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2016-12' -namespace: azure.mgmt.storage.v2016_12_01 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2016_12_01 -``` - ### Tag: package-2016-01 and python These settings apply only when `--tag=package-2016-01 --python` is specified on the command line. @@ -256,16 +73,6 @@ namespace: azure.mgmt.storage.v2016_01_01 output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2016_01_01 ``` -### Tag: package-2015-06 and python - -These settings apply only when `--tag=package-2015-06 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2015-06' -namespace: azure.mgmt.storage.v2015_06_15 -output-folder: $(python-sdks-folder)/storage/azure-mgmt-storage/azure/mgmt/storage/v2015_06_15 -``` - ``` yaml $(python) directive: - from: swagger-document From 165586a1164e627aeeb8beb11fa73a7353c7c9dc Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu <31145988+chidozieononiwu@users.noreply.github.com> Date: Wed, 15 Jan 2025 10:33:23 -0800 Subject: [PATCH 28/82] Add variables files (#32101) --- eng/pipelines/templates/variables/image.yml | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 eng/pipelines/templates/variables/image.yml diff --git a/eng/pipelines/templates/variables/image.yml b/eng/pipelines/templates/variables/image.yml new file mode 100644 index 000000000000..644c8e916d87 --- /dev/null +++ b/eng/pipelines/templates/variables/image.yml @@ -0,0 +1,29 @@ +# Default pool image selection. Set as variable so we can override at pipeline level + +variables: + - name: LINUXPOOL + value: azsdk-pool-mms-ubuntu-2004-general + - name: LINUXNEXTPOOL + value: azsdk-pool-mms-ubuntu-2204-general + - name: WINDOWSPOOL + value: azsdk-pool-mms-win-2022-general + - name: MACPOOL + value: Azure Pipelines + + - name: LINUXVMIMAGE + value: azsdk-pool-mms-ubuntu-2004-1espt + - name: LINUXNEXTVMIMAGE + value: azsdk-pool-mms-ubuntu-2204-1espt + - name: WINDOWSVMIMAGE + value: azsdk-pool-mms-win-2022-1espt + - name: MACVMIMAGE + value: macos-latest + + # Values required for pool.os field in 1es pipeline templates + - name: LINUXOS + value: linux + - name: WINDOWSOS + value: windows + - name: MACOS + value: macOS + From ca2053cffe88a11dd55c773538a5af305c9a034b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:15:32 -0800 Subject: [PATCH 29/82] Bump @azure-tools/typespec-client-generator-cli (#32110) Bumps the typespec-client-generator-cli group with 1 update in the / directory: [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools). Updates `@azure-tools/typespec-client-generator-cli` from 0.14.2 to 0.15.1 - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits) --- updated-dependencies: - dependency-name: "@azure-tools/typespec-client-generator-cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typespec-client-generator-cli ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mike Harder --- package-lock.json | 323 +++------------------------------------------- package.json | 2 +- 2 files changed, 21 insertions(+), 304 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4b494848562c..e5e79ca1f086 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@azure-tools/typespec-azure-portal-core": "0.49.0", "@azure-tools/typespec-azure-resource-manager": "0.49.0", "@azure-tools/typespec-azure-rulesets": "0.49.0", - "@azure-tools/typespec-client-generator-cli": "0.14.2", + "@azure-tools/typespec-client-generator-cli": "0.15.1", "@azure-tools/typespec-client-generator-core": "0.49.1", "@azure-tools/typespec-liftr-base": "0.6.0", "@azure/avocado": "^0.9.1", @@ -458,7 +458,6 @@ "resolved": "https://registry.npmjs.org/@autorest/codemodel/-/codemodel-4.20.0.tgz", "integrity": "sha512-Z2GwVwAGNTcfGUmrWT5LJqZv/WDXKBBpxhZrHu6zco/HrEGrqKQcKx5whlLX/GmAB/KmhcOWYr6aIyWomcoisQ==", "dev": true, - "license": "MIT", "dependencies": { "@azure-tools/codegen": "~2.10.0", "js-yaml": "~4.1.0" @@ -486,7 +485,6 @@ "resolved": "https://registry.npmjs.org/@autorest/extension-base/-/extension-base-3.6.0.tgz", "integrity": "sha512-hE6nmdYu2SA6xlG46lM+/njtz0yNEkhzfkOs7PjrYulnXuBWHo08RdbXHGcecypgNhV2QAQcbV6ar5f1UGX6xQ==", "dev": true, - "license": "MIT", "dependencies": { "@azure-tools/codegen": "~2.10.0", "js-yaml": "~4.1.0", @@ -497,292 +495,35 @@ } }, "node_modules/@autorest/openapi-to-typespec": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@autorest/openapi-to-typespec/-/openapi-to-typespec-0.10.4.tgz", - "integrity": "sha512-FvT448S4DCmGNgDEdGp9kL8bJE6m9QiLgw1N8YGuEmDCYoliC0RB1NQaFhOt9tTAZ3GGDKpZdqeYw/3l1mVIJA==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/@autorest/openapi-to-typespec/-/openapi-to-typespec-0.10.6.tgz", + "integrity": "sha512-XyggoIBpYb+abgKCB/8O6QEF6nutKhFmA52rpOZ6Om3gz6FtbBas3WVRn/csFsUeZVOvJ1CUTOxTzY1v36okuw==", "dev": true, - "license": "MIT", "dependencies": { "@autorest/codemodel": "~4.20.0", "@autorest/extension-base": "~3.6.0", "@azure-tools/codegen": "~2.10.0", - "@azure-tools/typespec-autorest": "^0.48.0", - "@azure-tools/typespec-azure-core": "^0.48.0", - "@azure-tools/typespec-azure-resource-manager": "^0.48.0", - "@typespec/compiler": "^0.62.0", - "@typespec/http": "^0.62.0", - "@typespec/openapi": "^0.62.0", - "@typespec/openapi3": "^0.62.0", - "@typespec/prettier-plugin-typespec": "^0.62.0", - "@typespec/rest": "^0.62.0", - "@typespec/versioning": "^0.62.0", + "@azure-tools/typespec-autorest": "^0.49.0", + "@azure-tools/typespec-azure-core": "^0.49.0", + "@azure-tools/typespec-azure-resource-manager": "^0.49.0", + "@typespec/compiler": "^0.63.0", + "@typespec/http": "^0.63.0", + "@typespec/openapi": "^0.63.0", + "@typespec/openapi3": "^0.63.0", + "@typespec/prettier-plugin-typespec": "^0.63.0", + "@typespec/rest": "^0.63.0", + "@typespec/versioning": "^0.63.0", "change-case-all": "~2.1.0", "lodash": "~4.17.20", "pluralize": "^8.0.0", "prettier": "~3.1.0" } }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-autorest": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.48.0.tgz", - "integrity": "sha512-AyoNMq3EORugHynFF8bN0TJh+zYxui/ApU5DoVEL7Xr1yMD6k9p5b90VD4HiCsP0dz8470ApFnjt5Vl6xCSzig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.48.0", - "@azure-tools/typespec-azure-resource-manager": "~0.48.0", - "@azure-tools/typespec-client-generator-core": "~0.48.0", - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0", - "@typespec/openapi": "~0.62.0", - "@typespec/rest": "~0.62.0", - "@typespec/versioning": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-azure-core": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.48.0.tgz", - "integrity": "sha512-80qyqgTgBbrnCGXtz6eWAMBdEAjYVVL780L0Ye+rBEd6VoA0m3JrgzUqf5bC0Iwju6lEtBAb8o6sefKD/NGA7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0", - "@typespec/rest": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-azure-resource-manager": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.48.0.tgz", - "integrity": "sha512-4JxPbKxd3EJ98sLbtfBlqyANWVrU6tT2nk3iLspg7MITPLhiMTeRT9BprsJXH18ks8qw8scR7/am5r57YERTmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "change-case": "~5.4.4", - "pluralize": "^8.0.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.48.0", - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0", - "@typespec/openapi": "~0.62.0", - "@typespec/rest": "~0.62.0", - "@typespec/versioning": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.48.6", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.48.6.tgz", - "integrity": "sha512-SVD4JCON52UIs4AogxQs8OrXjFdEf9EJPuK76Ze33VhtYdNNXPLJir2uV1wNJAnNtH2i3IMBkfrq2RjV1HHpdA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "change-case": "~5.4.4", - "pluralize": "^8.0.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.48.0", - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0", - "@typespec/openapi": "~0.62.0", - "@typespec/rest": "~0.62.0", - "@typespec/versioning": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/compiler": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.62.0.tgz", - "integrity": "sha512-RfKJ/rF2Wjxu7dl74oJE8yEfSkeL7NopFlyJ4dW1JQXpRN2IOJYPxas12qZA6H9ZEIB8rBjyrHNxJSQbvn/UDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "~7.25.7", - "ajv": "~8.17.1", - "change-case": "~5.4.4", - "globby": "~14.0.2", - "mustache": "~4.2.0", - "picocolors": "~1.1.0", - "prettier": "~3.3.3", - "prompts": "~2.4.2", - "semver": "^7.6.3", - "temporal-polyfill": "^0.2.5", - "vscode-languageserver": "~9.0.1", - "vscode-languageserver-textdocument": "~1.0.12", - "yaml": "~2.5.1", - "yargs": "~17.7.2" - }, - "bin": { - "tsp": "cmd/tsp.js", - "tsp-server": "cmd/tsp-server.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/compiler/node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/http": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.62.0.tgz", - "integrity": "sha512-6H9y9e32lb2s76MMy29ITCwSZNG42sa/qWthiByUvfbTEXMpu5a1fQHNj7RXg+xmDKmVIHv3gAfjGPAWfXhkaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0", - "@typespec/streams": "~0.62.0" - }, - "peerDependenciesMeta": { - "@typespec/streams": { - "optional": true - } - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/openapi": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.62.0.tgz", - "integrity": "sha512-Xtm0Nd2BuSmEfSWGtc10ok22jyomYm9L2jY+kVTy+v5J89DrVh0o6+YpipUl1QhcItM1YMBphWHIHPfwkDRbnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/openapi3": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.62.0.tgz", - "integrity": "sha512-tfmaPvZ38fM+O5+ZBq4ic7fc32E3v0JOFP9h+7otQyrVprLVCToXpBwaxB7c2nTSJbI4vcxK7/T3Z8BD5j8X+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@readme/openapi-parser": "~2.6.0", - "yaml": "~2.5.1" - }, - "bin": { - "tsp-openapi3": "cmd/tsp-openapi3.js" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0", - "@typespec/openapi": "~0.62.0", - "@typespec/versioning": "~0.62.0" - }, - "peerDependenciesMeta": { - "@typespec/xml": { - "optional": true - } - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/prettier-plugin-typespec": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/prettier-plugin-typespec/-/prettier-plugin-typespec-0.62.0.tgz", - "integrity": "sha512-VJRtX4RcUYE0qiQpKL8K7Mgfozy/icieaoap44XR+2OmWegZmuR1Qjq5iWtjLBS7MFwSXHel+BT/LBlqu1v+dA==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier": "~3.3.3" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/prettier-plugin-typespec/node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/rest": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.62.0.tgz", - "integrity": "sha512-ci5UjelEKFwsPTdpgysoUoDCcw02EnbG4GBuYJdR5mRrFCBZMxrbro+OJLgSN3g/TORSsWlW7dEOWLfbyrmlZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0", - "@typespec/http": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/streams": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.62.0.tgz", - "integrity": "sha512-JmIJOOlR6NlYLhTVxw0vo3rQPfezzheXluCO00qO89TsdJFUyEz/Y2y5p9/JQbS0zLqtPpvNgPIksNH1Q6psSw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0" - } - }, - "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/versioning": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.62.0.tgz", - "integrity": "sha512-M5KTCVH5fBniZU8eQlw+NV13vAmPr58HyBLDIyxeOuV+SHNlx+f+qanUEDIPaJheKlaSSNTEZKsDhs83/iIMMA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.62.0" - } - }, "node_modules/@autorest/openapi-to-typespec/node_modules/prettier": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -793,19 +534,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@autorest/openapi-to-typespec/node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/@autorest/schemas": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@autorest/schemas/-/schemas-1.3.5.tgz", @@ -818,7 +546,6 @@ "resolved": "https://registry.npmjs.org/@azure-tools/async-io/-/async-io-3.0.254.tgz", "integrity": "sha512-X1C7XdyCuo50ch9FzKtTvmK18FgDxxf1Bbt3cSoknQqeDaRegHSSCO+zByq2YA4NvUzKXeZ1engh29IDxZXgpQ==", "dev": true, - "license": "MIT", "dependencies": { "@azure-tools/tasks": "~3.0.255", "proper-lockfile": "~2.0.1" @@ -832,7 +559,6 @@ "resolved": "https://registry.npmjs.org/@azure-tools/codegen/-/codegen-2.10.0.tgz", "integrity": "sha512-gdy0at3BUZAAARgiX9Ye6SNCKhcjLs5FNUewa/KV/dMGcPv7mBvbslt5VO3W8wj0n96ifk970aIFaivjacBxeQ==", "dev": true, - "license": "MIT", "dependencies": { "@azure-tools/async-io": "~3.0.0", "js-yaml": "~4.1.0", @@ -952,7 +678,6 @@ "resolved": "https://registry.npmjs.org/@azure-tools/tasks/-/tasks-3.0.255.tgz", "integrity": "sha512-GjALNLz7kWMEdRVbaN5g0cJHNAr3XVTbP0611Mv2UzMgGL6FOhNZJK+oPHJKLDR8EEDZNnkwPlyi7B+INXUSQA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.12.0" } @@ -1059,14 +784,13 @@ } }, "node_modules/@azure-tools/typespec-client-generator-cli": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.14.2.tgz", - "integrity": "sha512-tSwCQpBcnsqFdIpMbiookmMFzG/OYggTyG5UPeScPeqpLTA4bkGBbDoZ7reJh/V02J4AW0pul57khwTq9DNbRA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.15.1.tgz", + "integrity": "sha512-JoxYjI/LNZlWB7fAsfxBDo/BEpiiDHD/eKPvi8ex+9G+MVQLC4l9Ua0hp69EU/SS7FPcN9xDimuvyeNZjdR7lw==", "dev": true, - "license": "MIT", "dependencies": { "@autorest/core": "^3.10.2", - "@autorest/openapi-to-typespec": "0.10.4", + "@autorest/openapi-to-typespec": "0.10.6", "@azure-tools/rest-api-diff": ">=0.1.0 <1.0.0", "@azure-tools/typespec-autorest": ">=0.44.0 <1.0.0", "@azure/core-rest-pipeline": "^1.12.0", @@ -4406,7 +4130,6 @@ "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-2.1.0.tgz", "integrity": "sha512-v6b0WWWkZUMHVuYk82l+WROgkUm4qEN2w5hKRNWtEOYwWqUGoi8C6xH0l1RLF1EoWqDFK6MFclmN3od6ws3/uw==", "dev": true, - "license": "MIT", "dependencies": { "change-case": "^5.2.0", "sponge-case": "^2.0.2", @@ -8298,7 +8021,6 @@ "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-2.0.1.tgz", "integrity": "sha512-rjaeGbsmhNDcDInmwi4MuI6mRwJu6zq8GjYCLuSuE7GF+4UjgzkL69sVKKJ2T2xH61kK7rXvGYpvaTu909oXaQ==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "retry": "^0.10.0" @@ -8312,7 +8034,6 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", "integrity": "sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } @@ -8873,8 +8594,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-2.0.3.tgz", "integrity": "sha512-i4h9ZGRfxV6Xw3mpZSFOfbXjf0cQcYmssGWutgNIfFZ2VM+YIWfD71N/kjjwK6X/AAHzBr+rciEcn/L34S8TGw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", @@ -9145,8 +8865,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-3.0.3.tgz", "integrity": "sha512-6p4op8wE9CQv7uDFzulI6YXUw4lD9n4oQierdbFThEKVWVQcbQcUjdP27W8XE7V4QnWmnq9jueSHceyyQnqQVA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/teleport-javascript": { "version": "1.0.0", @@ -9290,7 +9009,6 @@ "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -9714,7 +9432,6 @@ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz", "integrity": "sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0.0 || >=6.0.0" } diff --git a/package.json b/package.json index 7e4bcd17deb5..77aa1f76635c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@azure-tools/typespec-azure-portal-core": "0.49.0", "@azure-tools/typespec-azure-resource-manager": "0.49.0", "@azure-tools/typespec-azure-rulesets": "0.49.0", - "@azure-tools/typespec-client-generator-cli": "0.14.2", + "@azure-tools/typespec-client-generator-cli": "0.15.1", "@azure-tools/typespec-client-generator-core": "0.49.1", "@azure-tools/typespec-liftr-base": "0.6.0", "@azure/avocado": "^0.9.1", From 7e08d30f26007842dc60d05c3ab86c519e66b353 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:36:31 -0800 Subject: [PATCH 30/82] Sync eng/common directory with azure-sdk-tools for PR 9635 (#32169) * ensure that packages that come back from AdditionalValidationPackages are NOT counted as 'includedForValidation: true' if they also exist in the original 'these packages changed' set Co-authored-by: Ben Broderick Phillips --------- Co-authored-by: Scott Beddall Co-authored-by: Scott Beddall <45376673+scbedd@users.noreply.github.com> Co-authored-by: Ben Broderick Phillips --- eng/common/scripts/Package-Properties.ps1 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eng/common/scripts/Package-Properties.ps1 b/eng/common/scripts/Package-Properties.ps1 index 999d818b4b03..1784521252df 100644 --- a/eng/common/scripts/Package-Properties.ps1 +++ b/eng/common/scripts/Package-Properties.ps1 @@ -187,12 +187,17 @@ function Get-PrPkgProperties([string]$InputDiffJson) { } } + $existingPackageNames = @($packagesWithChanges | ForEach-Object { $_.Name }) foreach ($addition in $additionalValidationPackages) { $key = $addition.Replace($RepoRoot, "").TrimStart('\/') if ($lookup[$key]) { - $lookup[$key].IncludedForValidation = $true - $packagesWithChanges += $lookup[$key] + $pkg = $lookup[$key] + + if ($pkg.Name -notin $existingPackageNames) { + $pkg.IncludedForValidation = $true + $packagesWithChanges += $pkg + } } } From 70672ea0a1a550ee608aa4718598b71550d361df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:30:51 -0800 Subject: [PATCH 31/82] [Key Vault] TypeSpec for Administration library (#30239) * Initial conversion from swagger * Update main.tsp * Update tspconfig.yaml * Update models.tsp * Update routes.tsp * Remove unused client.tsp * Use client.tsp * Remove unused code * Add exmaples folder * Resolve validation; Remove client.tsp for now * Only include relevant examples * Emit Administration swagger from tsp * Remove '-sdk' from generated swagger name * Add 7.5 support * Examples folder structure; add operationId/title to examples * Regenerate swaggers from TSP * Remove redundant existing swaggers * Fix up tspconfig.yaml for validation errors * Fix up LROs * Update readme for administration.json in 7.5, 7.6-preview.1 * Move TSP directory into keyvault folder * add typespec-ts to admin * camelCase to kebab-case for setting-name path * Use KeyVaultError; suppress method naming errors * Update title * Use + in path param to skip scope URL encoding * generate metadata for ci * Create BackupRestore directory * Create RBAC directory * Create Settings directory * Unified Administration library for SDK gen; Common to facilitate * @parameterVisibility to show required UpdateSettingRequest attribute * Remove Administration tspconfig to avoid PR checks * Add client.tsp for .NET to test validation * Fix to reference Error * Re-add config; suppress client.tsp warnings * Restrict client customizations to .NET * Revert "Update readme for administration.json in 7.5, 7.6-preview.1" This reverts commit 1d0a2bb6bea99321eadc43e2b2579bad827991b7. * Remove description newlines * Add GetSetting example (was UpdateSetting in main) * add customization for js * Make Error nullable * Templatize operations to use KeyVaultError * Rebase; Azure.Core.nextLink -> TypeSpec.nextLink * Make backup/restore bodies required * Add README explaining directory structure * go specific changes * Restore Azure.Core.nextLink -> TypeSpec.nextLink * TSP validation reformat * TSP validation for Go client.tsp clients * Correctly mark nullable attributes * Correctly make Error model nullable * Added Java configuration. Moved all imports to administration.tsp * Revert "Added Java configuration. Moved all imports to administration.tsp" This reverts commit e820e96c8d125ee8e55f6ebdf228e76bd6cae7b4. * Added Java config back. * add selectiveKeyRestoreStatus * Rename `jobID` to `jobId` in selectiveKeyRestoreStatus route. * Added @sharedRoute to restore status operations. * Selective restore status example * Run prettier * cspell * go tspconfig * Allow 'azadmin' word * Add additionalDirectories to tspconfig * additionalDirectories for unified; TypeSpec.nextLink * set correct values for typescript * update go tspconfig * fix module name for go tspconfig --------- Co-authored-by: Maor Leger Co-authored-by: Mike Harder Co-authored-by: gracewilcox Co-authored-by: vcolin7 Co-authored-by: vcolin7 Co-authored-by: Chenjie Shi --- cSpell.json | 22 + custom-words.txt | 1 + .../README.md | 45 + .../administration.tsp | 8 + .../client.tsp | 135 +++ .../7.5/DeleteRoleAssignments-example.json | 24 + .../7.5/DeleteRoleDefinition-example.json | 34 + .../examples/7.5/FullBackup-example.json | 28 + .../7.5/FullBackup-pending-example.json | 21 + .../examples/7.5/FullRestore-example.json | 30 + .../7.5/GetRoleAssignments-example.json | 24 + .../7.5/GetRoleDefinition-example.json | 34 + .../7.5/ListRoleAssignments-example.json | 27 + .../7.5/ListRoleDefinitions-example.json | 38 + .../examples/7.5/ListSettings-example.json | 21 + .../7.5/PutRoleAssignments-example.json | 30 + .../7.5/PutRoleDefinition-example.json | 48 + .../examples/7.5/Restore-pending-example.json | 20 + .../7.5/SelectiveRestore-example.json | 31 + .../7.5/SelectiveRestore-pending-example.json | 20 + .../examples/7.5/UpdateSetting-example.json | 21 + .../DeleteRoleAssignments-example.json | 24 + .../DeleteRoleDefinition-example.json | 34 + .../7.6-preview.1/FullBackup-example.json | 28 + .../FullBackup-pending-example.json | 21 + .../7.6-preview.1/FullRestore-example.json | 30 + .../GetRoleAssignments-example.json | 24 + .../GetRoleDefinition-example.json | 34 + .../ListRoleAssignments-example.json | 27 + .../ListRoleDefinitions-example.json | 38 + .../7.6-preview.1/ListSettings-example.json | 21 + .../7.6-preview.1/PreFullBackup-example.json | 28 + .../7.6-preview.1/PreFullRestore-example.json | 30 + .../PutRoleAssignments-example.json | 30 + .../PutRoleDefinition-example.json | 48 + .../Restore-pending-example.json | 20 + .../SelectiveRestore-example.json | 31 + .../SelectiveRestore-pending-example.json | 20 + .../7.6-preview.1/UpdateSetting-example.json | 21 + .../tspconfig.yaml | 60 + .../client.tsp | 30 + .../examples/7.5/FullBackup-example.json | 28 + .../7.5/FullBackup-pending-example.json | 21 + .../examples/7.5/FullRestore-example.json | 30 + .../examples/7.5/Restore-pending-example.json | 20 + .../7.5/SelectiveRestore-example.json | 31 + .../7.5/SelectiveRestore-pending-example.json | 20 + .../7.6-preview.1/FullBackup-example.json | 28 + .../FullBackup-pending-example.json | 21 + .../7.6-preview.1/FullRestore-example.json | 30 + .../7.6-preview.1/PreFullBackup-example.json | 28 + .../7.6-preview.1/PreFullRestore-example.json | 30 + .../Restore-pending-example.json | 20 + .../SelectiveRestore-example.json | 31 + .../SelectiveRestore-pending-example.json | 20 + .../Security.KeyVault.BackupRestore/main.tsp | 58 + .../models.tsp | 244 ++++ .../routes.tsp | 262 +++++ .../tspconfig.yaml | 36 + .../Security.KeyVault.Common/common.tsp | 53 + .../Security.KeyVault.RBAC/client.tsp | 30 + .../7.5/DeleteRoleAssignments-example.json | 24 + .../7.5/DeleteRoleDefinition-example.json | 34 + .../7.5/GetRoleAssignments-example.json | 24 + .../7.5/GetRoleDefinition-example.json | 34 + .../7.5/ListRoleAssignments-example.json | 27 + .../7.5/ListRoleDefinitions-example.json | 38 + .../7.5/PutRoleAssignments-example.json | 30 + .../7.5/PutRoleDefinition-example.json | 48 + .../DeleteRoleAssignments-example.json | 24 + .../DeleteRoleDefinition-example.json | 34 + .../GetRoleAssignments-example.json | 24 + .../GetRoleDefinition-example.json | 34 + .../ListRoleAssignments-example.json | 27 + .../ListRoleDefinitions-example.json | 38 + .../PutRoleAssignments-example.json | 30 + .../PutRoleDefinition-example.json | 48 + .../keyvault/Security.KeyVault.RBAC/main.tsp | 58 + .../Security.KeyVault.RBAC/models.tsp | 462 ++++++++ .../Security.KeyVault.RBAC/routes.tsp | 195 ++++ .../Security.KeyVault.RBAC/tspconfig.yaml | 36 + .../Security.KeyVault.Settings/client.tsp | 10 + .../examples/7.5/GetSetting-example.json | 21 + .../examples/7.5/ListSettings-example.json | 21 + .../examples/7.5/UpdateSetting-example.json | 21 + .../7.6-preview.1/GetSetting-example.json | 21 + .../7.6-preview.1/ListSettings-example.json | 21 + .../7.6-preview.1/UpdateSetting-example.json | 21 + .../Security.KeyVault.Settings/main.tsp | 58 + .../Security.KeyVault.Settings/models.tsp | 79 ++ .../Security.KeyVault.Settings/routes.tsp | 59 + .../Security.KeyVault.Settings/tspconfig.yaml | 36 + .../preview/7.6-preview.1/backuprestore.json | 702 +++++++----- .../DeleteRoleAssignments-example.json | 2 + .../DeleteRoleDefinition-example.json | 2 + .../examples/FullBackup-example.json | 2 + .../examples/FullBackup-pending-example.json | 2 + .../examples/FullRestore-example.json | 2 + .../examples/GetRoleAssignments-example.json | 2 + .../examples/GetRoleDefinition-example.json | 2 + .../examples/GetSetting-example.json | 21 + .../examples/ListRoleAssignments-example.json | 2 + .../examples/ListRoleDefinitions-example.json | 2 + .../examples/ListSettings-example.json | 2 + .../examples/PreFullBackup-example.json | 2 + .../examples/PreFullRestore-example.json | 2 + .../examples/PutRoleAssignments-example.json | 2 + .../examples/PutRoleDefinition-example.json | 2 + .../examples/Restore-pending-example.json | 2 + .../examples/SelectiveRestore-example.json | 2 + .../SelectiveRestore-pending-example.json | 20 + .../examples/UpdateSetting-example.json | 2 + .../preview/7.6-preview.1/rbac.json | 1001 +++++++++-------- .../preview/7.6-preview.1/settings.json | 238 ++-- .../stable/7.5/backuprestore.json | 531 +++++---- .../DeleteRoleAssignments-example.json | 2 + .../DeleteRoleDefinition-example.json | 2 + .../7.5/examples/FullBackup-example.json | 2 + .../examples/FullBackup-pending-example.json | 2 + .../7.5/examples/FullRestore-example.json | 2 + .../examples/GetRoleAssignments-example.json | 2 + .../examples/GetRoleDefinition-example.json | 2 + .../7.5/examples/GetSetting-example.json | 21 + .../examples/ListRoleAssignments-example.json | 2 + .../examples/ListRoleDefinitions-example.json | 2 + .../7.5/examples/ListSettings-example.json | 2 + .../examples/PutRoleAssignments-example.json | 2 + .../examples/PutRoleDefinition-example.json | 2 + .../7.5/examples/Restore-pending-example.json | 2 + .../examples/SelectiveRestore-example.json | 2 + .../SelectiveRestore-pending-example.json | 20 + .../7.5/examples/UpdateSetting-example.json | 2 + .../Microsoft.KeyVault/stable/7.5/rbac.json | 1001 +++++++++-------- .../stable/7.5/settings.json | 238 ++-- 134 files changed, 6232 insertions(+), 1564 deletions(-) create mode 100644 specification/keyvault/Security.KeyVault.Administration/README.md create mode 100644 specification/keyvault/Security.KeyVault.Administration/administration.tsp create mode 100644 specification/keyvault/Security.KeyVault.Administration/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleDefinitions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListSettings-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/Restore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.5/UpdateSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleDefinitions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListSettings-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/Restore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/UpdateSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/Restore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullBackup-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/Restore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-pending-example.json create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/main.tsp create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/models.tsp create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/routes.tsp create mode 100644 specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml create mode 100644 specification/keyvault/Security.KeyVault.Common/common.tsp create mode 100644 specification/keyvault/Security.KeyVault.RBAC/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleDefinitions-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleDefinitions-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleAssignments-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleDefinition-example.json create mode 100644 specification/keyvault/Security.KeyVault.RBAC/main.tsp create mode 100644 specification/keyvault/Security.KeyVault.RBAC/models.tsp create mode 100644 specification/keyvault/Security.KeyVault.RBAC/routes.tsp create mode 100644 specification/keyvault/Security.KeyVault.RBAC/tspconfig.yaml create mode 100644 specification/keyvault/Security.KeyVault.Settings/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.5/GetSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.5/ListSettings-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.5/UpdateSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/GetSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/ListSettings-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/UpdateSetting-example.json create mode 100644 specification/keyvault/Security.KeyVault.Settings/main.tsp create mode 100644 specification/keyvault/Security.KeyVault.Settings/models.tsp create mode 100644 specification/keyvault/Security.KeyVault.Settings/routes.tsp create mode 100644 specification/keyvault/Security.KeyVault.Settings/tspconfig.yaml create mode 100644 specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSetting-example.json create mode 100644 specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-pending-example.json create mode 100644 specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSetting-example.json create mode 100644 specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-pending-example.json diff --git a/cSpell.json b/cSpell.json index d89e94acbcc5..832d976f169a 100644 --- a/cSpell.json +++ b/cSpell.json @@ -421,6 +421,28 @@ "modelerfour" ] }, + { + "filename": "**/specification/keyvault/Security.KeyVault.Administration/README.md", + "words": [ + "subservices", + "subservice", + "renamings", + "tspconfig", + "backuprestore" + ] + }, + { + "filename": "**/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml", + "words": [ + "subpackage" + ] + }, + { + "filename": "**/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml", + "words": [ + "backuprestore" + ] + }, { "filename": "**/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json", "words": [ diff --git a/custom-words.txt b/custom-words.txt index 63bb0c01dde7..ab8b9b46188e 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -275,6 +275,7 @@ avro avrodeflate awadhi axlarge +azadmin azcis azcmagent azedge diff --git a/specification/keyvault/Security.KeyVault.Administration/README.md b/specification/keyvault/Security.KeyVault.Administration/README.md new file mode 100644 index 000000000000..1eb390351972 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/README.md @@ -0,0 +1,45 @@ +# Azure Key Vault TypeSpec Specification (Administration SDK) + +The TypeSpec specification for Azure Key Vault's Administration SDK library. + +This specification is client library-specific and is only meant to be a convenience for client library generation. +Aside from client customizations in `client.tsp`, this directory only consolidates the specifications for the Key Vault +subservices that comprise the Administration SDK: [BackupRestore][backup_restore], [RBAC][rbac], and [Settings][settings]. + +Client SDKs that need a single generation point should use this directory, either producing a single client by default +or defining multiple clients in `client.tsp`. SDKs that need separate packages for each subservice should instead use +the subservice directories as generation points, and make any client customizations with `client.tsp`s in those +directories. + +## Development environment + +Instructions for installing TypeSpec and generating SDK code with `tsp-client` are documented at +[azure.github.io][typespec_docs]. + +## Contents + +### `administration.tsp` +This file imports the relevant specifications from each of the Administration subservices. This includes shared +definitions from [`Security.KeyVault.Common`][common]; model and route definitions from [BackupRestore][backup_restore], +[RBAC][rbac], and [Settings][settings]; and a `main.tsp` file from any one of these subservices. The `main.tsp` files +of each subservice are equivalent and importing more than one will cause errors due to duplicated definitions. + +### `client.tsp` +This file makes client SDK customizations, such as model renamings and client definitions. + +### `tspconfig.yaml` +This configuration file is necessary to generate client SDKs. Configuration for OpenAPI spec generation (under +`"@azure-tools/typespec-autorest":`) is present to satisfy automated validation checks, but this spec shouldn't actually +be generated or included in PRs since this would duplicate specs for each subservice. + +### `examples` +Present for validation checks; these are duplicates of the examples for each subservice. + + + + +[backup_restore]: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/keyvault/Security.KeyVault.BackupRestore +[common]: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/keyvault/Security.KeyVault.Common +[rbac]: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/keyvault/Security.KeyVault.RBAC +[settings]: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/keyvault/Security.KeyVault.Settings +[typespec_docs]: https://azure.github.io/typespec-azure/docs/intro/ diff --git a/specification/keyvault/Security.KeyVault.Administration/administration.tsp b/specification/keyvault/Security.KeyVault.Administration/administration.tsp new file mode 100644 index 000000000000..78670ab5a4e6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/administration.tsp @@ -0,0 +1,8 @@ +import "../Security.KeyVault.Common/common.tsp"; +import "../Security.KeyVault.BackupRestore/main.tsp"; +import "../Security.KeyVault.BackupRestore/models.tsp"; +import "../Security.KeyVault.BackupRestore/routes.tsp"; +import "../Security.KeyVault.RBAC/models.tsp"; +import "../Security.KeyVault.RBAC/routes.tsp"; +import "../Security.KeyVault.Settings/models.tsp"; +import "../Security.KeyVault.Settings/routes.tsp"; diff --git a/specification/keyvault/Security.KeyVault.Administration/client.tsp b/specification/keyvault/Security.KeyVault.Administration/client.tsp new file mode 100644 index 000000000000..18dfe04c9f0e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/client.tsp @@ -0,0 +1,135 @@ +// client.tsp +import "./administration.tsp"; +import "../Security.KeyVault.Common/common.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@TypeSpec.Versioning.useDependency(KeyVault.Versions.`v7.6_preview.1`) +namespace ClientCustomizations; + +//Java customizations +@@clientName(KeyVault.DataAction, "KeyVaultDataAction", "java"); +@@clientName(KeyVault.RoleDefinitionType, "KeyVaultRoleDefinitionType", "java"); +@@clientName(KeyVault.RoleType, "KeyVaultRoleType", "java"); +@@clientName(KeyVault.RoleScope, "KeyVaultRoleScope", "java"); +@@clientName(KeyVault.SettingTypeEnum, "KeyVaultSettingType", "java"); + +//C# customizations +@@clientName(KeyVault.Setting, "KeyVaultSetting", "csharp"); +@@clientName(KeyVault.Setting.value, "Content", "csharp"); +@@clientName(KeyVault.Setting.type, "SettingType", "csharp"); +@@clientName(KeyVault.SettingTypeEnum, "KeyVaultSettingType", "csharp"); +@@clientName(KeyVault.Permission, "KeyVaultPermission", "csharp"); +@@clientName(KeyVault.RoleScope, "KeyVaultRoleScope", "csharp"); +@@clientName(KeyVault.RoleType, "KeyVaultRoleType", "csharp"); +@@clientName(KeyVault.RoleAssignment, "KeyVaultRoleAssignment", "csharp"); +@@clientName(KeyVault.FullBackupOperation, + "FullBackupDetailsInternal", + "csharp" +); +@@clientName(KeyVault.SettingsListResult, "GetSettingsResult", "csharp"); +@@clientName(KeyVault.RoleAssignmentPropertiesWithScope, + "KeyVaultRoleAssignmentProperties", + "csharp" +); +@@clientName(KeyVault.RoleDefinitionType, + "KeyVaultRoleDefinitionType", + "csharp" +); +@@clientName(KeyVault.Permission, "KeyVaultPermission", "csharp"); +@@clientName(Error, "KeyVaultServiceError", "csharp"); +@@clientName(KeyVault.DataAction, "KeyVaultDataAction", "csharp"); +@@clientName(KeyVault.RestoreOperation, "RestoreDetailsInternal", "csharp"); + +@@access(KeyVault.RoleAssignmentCreateParameters, Access.internal, "csharp"); +@@access(KeyVault.RoleDefinitionCreateParameters, Access.internal, "csharp"); +@@access(KeyVault.SASTokenParameter, Access.internal, "csharp"); +@@access(KeyVault.SelectiveKeyRestoreOperationParameters, + Access.internal, + "csharp" +); +@@access(KeyVault.RoleDefinitionProperties, Access.internal, "csharp"); + +@@clientName(KeyVault.FullBackupOperation.azureStorageBlobContainerUri, + "folderUri", + "javascript" +); + +@client( + { + name: "BackupRestoreRestClient", + service: KeyVault, + }, + "csharp" +) +interface BackupRestoreRestClient { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + fullBackup is KeyVault.fullBackup; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name has already shipped" + fullBackupStatus is KeyVault.fullBackupStatus; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + preFullBackup is KeyVault.preFullBackup; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name has already shipped" + restoreStatus is KeyVault.restoreStatus; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + preFullRestoreOperation is KeyVault.preFullRestoreOperation; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + fullRestoreOperation is KeyVault.fullRestoreOperation; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + selectiveKeyRestoreOperation is KeyVault.selectiveKeyRestoreOperation; +} + +@client( + { + name: "RoleAssignmentsRestClient", + service: KeyVault, + }, + "csharp" +) +interface RoleAssignmentsRestClient { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + delete is KeyVault.RoleAssignments.delete; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + create is KeyVault.RoleAssignments.create; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + get is KeyVault.RoleAssignments.get; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + listForScope is KeyVault.RoleAssignments.listForScope; +} + +@client( + { + name: "RoleDefinitionsRestClient", + service: KeyVault, + }, + "csharp" +) +interface RoleDefinitionsRestClient { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + delete is KeyVault.RoleDefinitions.delete; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + createOrUpdate is KeyVault.RoleDefinitions.createOrUpdate; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + get is KeyVault.RoleDefinitions.get; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + list is KeyVault.RoleDefinitions.list; +} + +@client( + { + name: "SettingsRestClient", + service: KeyVault, + }, + "csharp" +) +interface SettingsRestClient { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + updateSetting is KeyVault.updateSetting; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + getSetting is KeyVault.getSetting; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + getSettings is KeyVault.getSettings; +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleAssignments-example.json new file mode 100644 index 000000000000..a062af516544 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleDefinition-example.json new file mode 100644 index 000000000000..0bc163918526 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/DeleteRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-example.json new file mode 100644 index 000000000000..5b6716be6d5d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "FullBackup", + "title": "Create a full backup", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "azureStorageBlobContainerUri": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-pending-example.json new file mode 100644 index 000000000000..c8c0da456a80 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullBackup-pending-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/.fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullRestore-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullRestore-example.json new file mode 100644 index 000000000000..0bd401972650 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/FullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleAssignments-example.json new file mode 100644 index 000000000000..7f5c66a18998 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleDefinition-example.json new file mode 100644 index 000000000000..d01365df2295 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/GetRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "api-version": "7.5", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleAssignments-example.json new file mode 100644 index 000000000000..fa5ca73d36d6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleAssignments-example.json @@ -0,0 +1,27 @@ +{ + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleDefinitions-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleDefinitions-example.json new file mode 100644 index 000000000000..3f680e2602fe --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListRoleDefinitions-example.json @@ -0,0 +1,38 @@ +{ + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleName": "Role name", + "type": "roletype", + "description": "Role description", + "assignableScopes": [ + "/keys" + ], + "permissions": [ + { + "actions": [ + "get" + ], + "notActions": [] + } + ] + }, + "id": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "roleDefinitionId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListSettings-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListSettings-example.json new file mode 100644 index 000000000000..4efac371aa13 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/ListSettings-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSettings", + "title": "List account settings", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "settings": [ + { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleAssignments-example.json new file mode 100644 index 000000000000..7b8ad8d357a7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleAssignments-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "parameters": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId" + } + }, + "api-version": "7.5" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleDefinition-example.json new file mode 100644 index 000000000000..62aa3e6ab7f7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/PutRoleDefinition-example.json @@ -0,0 +1,48 @@ +{ + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "parameters": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + } + }, + "api-version": "7.5" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/Restore-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/Restore-pending-example.json new file mode 100644 index 000000000000..6454089dfa30 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/Restore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-example.json new file mode 100644 index 000000000000..e57bd90e34fe --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-example.json @@ -0,0 +1,31 @@ +{ + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net", + "keyName": "hsm-mail-key", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folder": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568a23b0s49a2803861e8dd3ase21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Selective Key restore is in progress", + "jobId": "45aacd568a23b0s49a2803861e8dd3ase21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..b614aab7a1e7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.5/UpdateSetting-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/UpdateSetting-example.json new file mode 100644 index 000000000000..57f6dd843061 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.5/UpdateSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "UpdateSetting", + "title": "Update key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.5", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleAssignments-example.json new file mode 100644 index 000000000000..c56d1104b450 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleDefinition-example.json new file mode 100644 index 000000000000..19a2eb6ae85f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/DeleteRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-example.json new file mode 100644 index 000000000000..3f48de356ce4 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "FullBackup", + "title": "Create a full backup", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "azureStorageBlobContainerUri": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-pending-example.json new file mode 100644 index 000000000000..9a16f1ce18a1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullBackup-pending-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/.fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullRestore-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullRestore-example.json new file mode 100644 index 000000000000..e27c3da93970 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/FullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleAssignments-example.json new file mode 100644 index 000000000000..24626dc00f8b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleDefinition-example.json new file mode 100644 index 000000000000..629be77da6de --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/GetRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "api-version": "7.6-preview.1", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleAssignments-example.json new file mode 100644 index 000000000000..9e36f3d83474 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleAssignments-example.json @@ -0,0 +1,27 @@ +{ + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleDefinitions-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleDefinitions-example.json new file mode 100644 index 000000000000..94fd5b1fdc61 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListRoleDefinitions-example.json @@ -0,0 +1,38 @@ +{ + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleName": "Role name", + "type": "roletype", + "description": "Role description", + "assignableScopes": [ + "/keys" + ], + "permissions": [ + { + "actions": [ + "get" + ], + "notActions": [] + } + ] + }, + "id": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "roleDefinitionId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListSettings-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListSettings-example.json new file mode 100644 index 000000000000..6618dd399e6a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/ListSettings-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSettings", + "title": "List account settings", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "settings": [ + { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullBackup-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullBackup-example.json new file mode 100644 index 000000000000..ebf91973c16b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "PreFullBackup", + "title": "Check whether the customer can perform a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "preBackupOperationParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Pre Full backup is in progress", + "azureStorageBlobContainerUri": null, + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullRestore-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullRestore-example.json new file mode 100644 index 000000000000..0f59f555b310 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PreFullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "PreFullRestoreOperation", + "title": "Check whether the customer can perform a full restore operation", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "preRestoreOperationParameters": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Pre Full restore operation is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleAssignments-example.json new file mode 100644 index 000000000000..98a2cabdba40 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleAssignments-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "parameters": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId" + } + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleDefinition-example.json new file mode 100644 index 000000000000..42b977667d63 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/PutRoleDefinition-example.json @@ -0,0 +1,48 @@ +{ + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "parameters": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + } + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/Restore-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/Restore-pending-example.json new file mode 100644 index 000000000000..b7c7c06b84bc --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/Restore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-example.json new file mode 100644 index 000000000000..aeb59a262068 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-example.json @@ -0,0 +1,31 @@ +{ + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net", + "keyName": "hsm-mail-key", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folder": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568a23b0s49a2803861e8dd3ase21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Selective Key restore is in progress", + "jobId": "45aacd568a23b0s49a2803861e8dd3ase21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-pending-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..7f9412302a5b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/UpdateSetting-example.json b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/UpdateSetting-example.json new file mode 100644 index 000000000000..416b0b4e578d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/examples/7.6-preview.1/UpdateSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "UpdateSetting", + "title": "Update key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.6-preview.1", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml new file mode 100644 index 000000000000..8cb89bd8fdec --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml @@ -0,0 +1,60 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.BackupRestore/" + - "specification/keyvault/Security.KeyVault.Common/" + - "specification/keyvault/Security.KeyVault.RBAC/" + - "specification/keyvault/Security.KeyVault.Settings/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/administration.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + "@azure-tools/typespec-python": + flavor: azure + "basic-setup-py": true + "package-version": "4.5.0b1" + "package-dir": "azure-keyvault-administration" + "package-name": "azure-keyvault-administration" + "output-path": "./azure/keyvault/administration/_generated" + "@azure-tools/typespec-java": + flavor: azure + "package-dir": "azure-security-keyvault-administration" + "namespace": "com.azure.security.keyvault.administration" + "models-subpackage": "implementation.models" + "custom-types": "KeyVaultDataAction,KeyVaultRoleDefinitionType,KeyVaultRoleScope,KeyVaultRoleType,KeyVaultSettingType" + "custom-types-subpackage": "models" + "customization-class": "swagger/src/main/java/AdministrationCustomizations.java" + "partial-update": true + "generate-tests": false + "generate-samples": false + "include-api-view-properties": false + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + "@azure-tools/typespec-csharp": + package-dir: "Azure.Security.KeyVault.Administration" + namespace: "Azure.Security.KeyVault.Administration" + "output-path": "./src/Generated" + flavor: azure + "@azure-tools/typespec-ts": + package-dir: "keyvault-admin" + generateMetadata: true + generateTest: false + src-folder: "src/generated" + experimentalExtensibleEnums: true + isModularLibrary: true + packageDetails: + name: "@azure/keyvault-admin" + description: "Azure Key Vault Administration" + flavor: azure diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/client.tsp b/specification/keyvault/Security.KeyVault.BackupRestore/client.tsp new file mode 100644 index 000000000000..c42f2a55eb64 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/client.tsp @@ -0,0 +1,30 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@TypeSpec.Versioning.useDependency(KeyVault.Versions.`v7.5`) +namespace ClientCustomizations; + +@client({ + name: "Client", + service: KeyVault, +}) +interface Client { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + fullBackup is KeyVault.fullBackup; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + fullRestore is KeyVault.fullRestoreOperation; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + selectiveKeyRestore is KeyVault.selectiveKeyRestoreOperation; +} + +@@clientName(KeyVault.SASTokenParameter, "SASTokenParameters", "go"); +@@clientName(KeyVault.RestoreOperationParameters.sasTokenParameters, + "SASTokenParameters", + "go" +); +@@clientName(KeyVault.SelectiveKeyRestoreOperationParameters.sasTokenParameters, + "SASTokenParameters", + "go" +); diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-example.json new file mode 100644 index 000000000000..5b6716be6d5d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "FullBackup", + "title": "Create a full backup", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "azureStorageBlobContainerUri": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-pending-example.json new file mode 100644 index 000000000000..c8c0da456a80 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullBackup-pending-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/.fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullRestore-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullRestore-example.json new file mode 100644 index 000000000000..0bd401972650 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/FullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/Restore-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/Restore-pending-example.json new file mode 100644 index 000000000000..6454089dfa30 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/Restore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-example.json new file mode 100644 index 000000000000..e57bd90e34fe --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-example.json @@ -0,0 +1,31 @@ +{ + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net", + "keyName": "hsm-mail-key", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folder": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.5" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568a23b0s49a2803861e8dd3ase21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Selective Key restore is in progress", + "jobId": "45aacd568a23b0s49a2803861e8dd3ase21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..b614aab7a1e7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.5/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-example.json new file mode 100644 index 000000000000..3f48de356ce4 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "FullBackup", + "title": "Create a full backup", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "azureStorageBlobContainerUri": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-pending-example.json new file mode 100644 index 000000000000..9a16f1ce18a1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullBackup-pending-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full backup is in progress", + "azureStorageBlobContainerUri": "https://myaccount.blob.core.windows.net/sascontainer/.fullbackup-pool-61e8dd3ae21f-1579243113", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullRestore-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullRestore-example.json new file mode 100644 index 000000000000..e27c3da93970 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/FullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullBackup-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullBackup-example.json new file mode 100644 index 000000000000..ebf91973c16b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullBackup-example.json @@ -0,0 +1,28 @@ +{ + "operationId": "PreFullBackup", + "title": "Check whether the customer can perform a full backup operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "preBackupOperationParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/backup/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Pre Full backup is in progress", + "azureStorageBlobContainerUri": null, + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullRestore-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullRestore-example.json new file mode 100644 index 000000000000..0f59f555b310 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/PreFullRestore-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "PreFullRestoreOperation", + "title": "Check whether the customer can perform a full restore operation", + "parameters": { + "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", + "preRestoreOperationParameters": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folderToRestore": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568ab049a2803861e8dd3ae21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Pre Full restore operation is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/Restore-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/Restore-pending-example.json new file mode 100644 index 000000000000..b7c7c06b84bc --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/Restore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-example.json new file mode 100644 index 000000000000..aeb59a262068 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-example.json @@ -0,0 +1,31 @@ +{ + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net", + "keyName": "hsm-mail-key", + "restoreBlobDetails": { + "sasTokenParameters": { + "storageResourceUri": "https://myaccount.blob.core.windows.net/sascontainer/sasContainer", + "token": "se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=REDACTED" + }, + "folder": "mhsm-mypool-20200303062926785" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "202": { + "headers": { + "Retry-After": 5, + "Azure-AsyncOperation": "https://myvault.vault.azure.net/restore/45aacd568a23b0s49a2803861e8dd3ase21f/pending" + }, + "body": { + "status": "InProgress", + "statusDetails": "Selective Key restore is in progress", + "jobId": "45aacd568a23b0s49a2803861e8dd3ase21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-pending-example.json b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..7f9412302a5b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/examples/7.6-preview.1/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/main.tsp b/specification/keyvault/Security.KeyVault.BackupRestore/main.tsp new file mode 100644 index 000000000000..2edcfd9b554e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/main.tsp @@ -0,0 +1,58 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-08-12T15:37:41.195Z + */ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +/** + * The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + */ +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://vault.azure.net/.default"], + } + ]> +) +@service({ + title: "KeyVaultClient", +}) +@versioned(Versions) +@server( + "{vaultBaseUrl}", + "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + { + vaultBaseUrl: url, + } +) +namespace KeyVault; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 7.5 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.5`: "7.5", + + /** + * The 7.6-preview.1 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.6_preview.1`: "7.6-preview.1", +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/models.tsp b/specification/keyvault/Security.KeyVault.BackupRestore/models.tsp new file mode 100644 index 000000000000..8db441f727b5 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/models.tsp @@ -0,0 +1,244 @@ +import "@typespec/http"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../Security.KeyVault.Common/common.tsp"; + +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +namespace KeyVault; + +/** + * An authentication method and location for the operation. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "Model name has already shipped" +model SASTokenParameter { + /** + * Azure Blob storage container Uri + */ + storageResourceUri: string; + + /** + * The SAS token pointing to an Azure Blob storage container + */ + token?: string; + + /** + * Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified. + */ + useManagedIdentity?: boolean = false; +} + +/** + * The status of a long-running operation. + */ +@lroStatus +union OperationStatus { + string, + + /** The operation is in progress. */ + InProgress: "InProgress", + + /** The operation successfully completed. */ + Succeeded: "Succeeded", + + /** The operation was canceled. */ + Canceled: "Canceled", + + /** The operation failed. */ + Failed: "Failed", +} + +/** + * Full backup operation + */ +model FullBackupOperation { + /** + * Status of the backup operation. + */ + status?: OperationStatus; + + /** + * The status details of backup operation. + */ + statusDetails?: string; + + /** + * Error encountered, if any, during the full backup operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" + error?: Error; + + /** + * The start time of the backup operation in UTC + */ + @encode("unixTimestamp", int32) + startTime?: utcDateTime; + + /** + * The end time of the backup operation in UTC + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable attribute" + @encode("unixTimestamp", int32) + endTime?: utcDateTime | null; + + /** + * Identifier for the full backup operation. + */ + jobId?: string; + + /** + * The Azure blob storage container Uri which contains the full backup + */ + azureStorageBlobContainerUri?: string; +} + +/** + * The authentication method and location for the backup operation. + */ +@added(KeyVault.Versions.`v7.6_preview.1`) +model PreBackupOperationParameters { + /** + * Azure Blob storage container Uri + */ + storageResourceUri?: string; + + /** + * The SAS token pointing to an Azure Blob storage container + */ + token?: string; + + /** + * Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified. + */ + useManagedIdentity?: boolean = false; +} + +/** + * The authentication method and location for the restore operation. + */ +@added(KeyVault.Versions.`v7.6_preview.1`) +model PreRestoreOperationParameters { + /** + * A user-provided SAS token to an Azure blob storage container. + */ + sasTokenParameters?: SASTokenParameter; + + /** + * The Folder name of the blob where the previous successful full backup was stored + */ + folderToRestore?: string; +} + +/** + * Restore operation + */ +model RestoreOperation { + /** + * Status of the restore operation. + */ + status?: OperationStatus; + + /** + * The status details of restore operation. + */ + statusDetails?: string; + + /** + * Error encountered, if any, during the restore operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" + error?: Error; + + /** + * Identifier for the restore operation. + */ + jobId?: string; + + /** + * The start time of the restore operation + */ + @encode("unixTimestamp", int32) + startTime?: utcDateTime; + + /** + * The end time of the restore operation + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable attribute" + @encode("unixTimestamp", int32) + endTime?: utcDateTime | null; +} + +/** + * The authentication method and location for the restore operation. + */ +model RestoreOperationParameters { + /** + * A user-provided SAS token to an Azure blob storage container. + */ + sasTokenParameters: SASTokenParameter; + + /** + * The Folder name of the blob where the previous successful full backup was stored + */ + folderToRestore: string; +} + +/** + * The authentication method and location for the selective key restore operation. + */ +model SelectiveKeyRestoreOperationParameters { + /** + * A user-provided SAS token to an Azure blob storage container. + */ + sasTokenParameters: SASTokenParameter; + + /** + * The Folder name of the blob where the previous successful full backup was stored + */ + folder: string; +} + +/** + * Selective Key Restore operation + */ +model SelectiveKeyRestoreOperation { + /** + * Status of the restore operation. + */ + status?: OperationStatus; + + /** + * The status details of restore operation. + */ + statusDetails?: string; + + /** + * Error encountered, if any, during the selective key restore operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" + error?: Error; + + /** + * Identifier for the selective key restore operation. + */ + jobId?: string; + + /** + * The start time of the restore operation + */ + @encode("unixTimestamp", int32) + startTime?: utcDateTime; + + /** + * The end time of the restore operation + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable attribute" + @encode("unixTimestamp", int32) + endTime?: utcDateTime | null; +} diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/routes.tsp b/specification/keyvault/Security.KeyVault.BackupRestore/routes.tsp new file mode 100644 index 000000000000..19f2087fee0c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/routes.tsp @@ -0,0 +1,262 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.ClientGenerator.Core; + +namespace KeyVault; + +/** + * Returns the status of full backup operation + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@route("/backup/{jobId}/pending") +@get +op fullBackupStatus is KeyVaultOperation< + { + /** + * The id returned as part of the backup request + */ + @path + jobId: string; + }, + FullBackupOperation +>; + +/** + * Creates a full backup using a user-provided SAS token to an Azure blob storage container. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@pollingOperation(fullBackupStatus) +@finalOperation(fullBackupStatus) +@useFinalStateVia("azure-async-operation") +@route("/backup") +@post +op fullBackup is KeyVaultOperation< + { + /** + * Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call. + */ + @body azureStorageBlobContainerUri: SASTokenParameter; + }, + { + @statusCode _: 202; + + /** + * The URI to poll for completion status. + */ + @pollingLocation + @header("Azure-AsyncOperation") + azureAsyncOperation?: string; + + /** + * The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. + */ + @header("Retry-After") retryAfter?: int32; + + /** + * The backup operation. + */ + @body response: FullBackupOperation; + } +>; + +/** + * Pre-backup operation for checking whether the customer can perform a full backup operation. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@added(KeyVault.Versions.`v7.6_preview.1`) +@pollingOperation(fullBackupStatus) +@finalOperation(fullBackupStatus) +@useFinalStateVia("azure-async-operation") +@route("/prebackup") +@post +op preFullBackup is KeyVaultOperation< + { + /** Optional parameters to validate prior to performing a full backup operation. */ + @body preBackupOperationParameters: PreBackupOperationParameters; + }, + { + @statusCode _: 202; + + /** + * The URI to poll for completion status. + */ + @pollingLocation + @header("Azure-AsyncOperation") + azureAsyncOperation?: string; + + /** + * The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. + */ + @header("Retry-After") retryAfter?: int32; + + /** + * The backup operation. + */ + @body response: FullBackupOperation; + } +>; + +/** + * Returns the status of restore operation + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@sharedRoute +@route("/restore/{jobId}/pending") +@get +op restoreStatus is KeyVaultOperation< + { + /** + * The Job Id returned part of the restore operation + */ + @path + jobId: string; + }, + RestoreOperation +>; + +/** + * Pre-restore operation for checking whether the customer can perform a full restore operation. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@added(KeyVault.Versions.`v7.6_preview.1`) +@pollingOperation(restoreStatus) +@finalOperation(restoreStatus) +@useFinalStateVia("azure-async-operation") +@route("/prerestore") +@put +op preFullRestoreOperation is KeyVaultOperation< + { + /** Optional pre restore parameters to validate prior to performing a full restore operation. */ + @body preRestoreOperationParameters: PreRestoreOperationParameters; + }, + { + @statusCode _: 202; + + /** + * The URI to poll for completion status. + */ + @pollingLocation + @header("Azure-AsyncOperation") + azureAsyncOperation?: string; + + /** + * The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. + */ + @header("Retry-After") retryAfter?: int32; + + /** + * The restore operation. + */ + @body response: RestoreOperation; + } +>; + +/** + * Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@pollingOperation(restoreStatus) +@finalOperation(restoreStatus) +@useFinalStateVia("azure-async-operation") +@route("/restore") +@put +op fullRestoreOperation is KeyVaultOperation< + { + /** The Azure blob SAS token pointing to a folder where the previous successful full backup was stored. */ + @body restoreBlobDetails: RestoreOperationParameters; + }, + { + @statusCode _: 202; + + /** + * The URI to poll for completion status. + */ + @pollingLocation + @header("Azure-AsyncOperation") + azureAsyncOperation?: string; + + /** + * The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. + */ + @header("Retry-After") retryAfter?: int32; + + /** + * The restore operation. + */ + @body response: RestoreOperation; + } +>; + +/** + * Returns the status of the selective key restore operation + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@sharedRoute +@route("/restore/{jobId}/pending") +@get +op selectiveKeyRestoreStatus is KeyVaultOperation< + { + /** + * The Job Id returned part of the restore operation + */ + @path + jobId: string; + }, + SelectiveKeyRestoreOperation +>; + +/** + * Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@pollingOperation(selectiveKeyRestoreStatus) +@finalOperation(selectiveKeyRestoreStatus) +@useFinalStateVia("azure-async-operation") +@route("/keys/{keyName}/restore") +@put +op selectiveKeyRestoreOperation is KeyVaultOperation< + { + /** + * The name of the key to be restored from the user supplied backup + */ + @path + keyName: string; + + /** + * The Azure blob SAS token pointing to a folder where the previous successful full backup was stored + */ + @body + restoreBlobDetails: SelectiveKeyRestoreOperationParameters; + }, + { + @statusCode _: 202; + + /** + * The URI to poll for completion status. + */ + @pollingLocation + @header("Azure-AsyncOperation") + azureAsyncOperation?: string; + + /** + * The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. + */ + @header("Retry-After") retryAfter?: int32; + + /** + * The restore operation. + */ + @body response: SelectiveKeyRestoreOperation; + } +>; diff --git a/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml b/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml new file mode 100644 index 000000000000..85d7bfe5bfa8 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml @@ -0,0 +1,36 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.Common/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/backuprestore.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + # "@azure-tools/typespec-python": true + # Uncomment this line and add "@azure-tools/typespec-java" to your package.json to generate Java code + # "@azure-tools/typespec-java": true + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + # "@azure-tools/typespec-csharp": true + # Uncomment this line and add "@azure-tools/typespec-ts" to your package.json to generate TypeSpec code + # "@azure-tools/typespec-ts": true + "@azure-tools/typespec-go": + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/azadmin" + module-version: "0.0.1" + service-dir: "sdk/security/keyvault" + package-dir: "azadmin/backup" + api-version: "7.5" + inject-spans: true + single-client: true diff --git a/specification/keyvault/Security.KeyVault.Common/common.tsp b/specification/keyvault/Security.KeyVault.Common/common.tsp new file mode 100644 index 000000000000..e2c7b37901a6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Common/common.tsp @@ -0,0 +1,53 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; + +using Azure.Core; +using TypeSpec.OpenAPI; + +alias KeyVaultOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError = Error +> = Foundations.Operation; + +/** + * The key vault server error. + */ +#suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" +union Error { + null, + { + /** + * The error code. + */ + @visibility("read") + code?: string, + + /** + * The error message. + */ + @visibility("read") + message?: string, + + /** + * The key vault server error. + */ + @visibility("read") + @encodedName("application/json", "innererror") + innerError?: Error, + }, +} + +/** + * The key vault error exception. + */ +@error +model KeyVaultError { + /** + * The key vault server error. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" + @visibility("read") + error?: Error; +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/client.tsp b/specification/keyvault/Security.KeyVault.RBAC/client.tsp new file mode 100644 index 000000000000..338d4a1a4f76 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/client.tsp @@ -0,0 +1,30 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@TypeSpec.Versioning.useDependency(KeyVault.Versions.`v7.5`) +namespace ClientCustomizations; + +@client({ + name: "Client", + service: KeyVault, +}) +interface Client { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + deleteRoleDefinition is KeyVault.RoleDefinitions.delete; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + deleteRoleAssignment is KeyVault.RoleAssignments.delete; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + createOrUpdateRoleDefinition is KeyVault.RoleDefinitions.createOrUpdate; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + createRoleAssignment is KeyVault.RoleAssignments.create; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + getRoleDefinition is KeyVault.RoleDefinitions.get; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + getRoleAssignment is KeyVault.RoleAssignments.get; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + listRoleDefinitions is KeyVault.RoleDefinitions.list; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" + listRoleAssignments is KeyVault.RoleAssignments.listForScope; +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleAssignments-example.json new file mode 100644 index 000000000000..a062af516544 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleDefinition-example.json new file mode 100644 index 000000000000..0bc163918526 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/DeleteRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleAssignments-example.json new file mode 100644 index 000000000000..7f5c66a18998 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleDefinition-example.json new file mode 100644 index 000000000000..d01365df2295 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/GetRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "api-version": "7.5", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleAssignments-example.json new file mode 100644 index 000000000000..fa5ca73d36d6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleAssignments-example.json @@ -0,0 +1,27 @@ +{ + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleDefinitions-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleDefinitions-example.json new file mode 100644 index 000000000000..3f680e2602fe --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/ListRoleDefinitions-example.json @@ -0,0 +1,38 @@ +{ + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleName": "Role name", + "type": "roletype", + "description": "Role description", + "assignableScopes": [ + "/keys" + ], + "permissions": [ + { + "actions": [ + "get" + ], + "notActions": [] + } + ] + }, + "id": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "roleDefinitionId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleAssignments-example.json new file mode 100644 index 000000000000..7b8ad8d357a7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleAssignments-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "parameters": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId" + } + }, + "api-version": "7.5" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleDefinition-example.json new file mode 100644 index 000000000000..62aa3e6ab7f7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.5/PutRoleDefinition-example.json @@ -0,0 +1,48 @@ +{ + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "parameters": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + } + }, + "api-version": "7.5" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleAssignments-example.json new file mode 100644 index 000000000000..c56d1104b450 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleDefinition-example.json new file mode 100644 index 000000000000..19a2eb6ae85f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/DeleteRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleAssignments-example.json new file mode 100644 index 000000000000..24626dc00f8b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleAssignments-example.json @@ -0,0 +1,24 @@ +{ + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleDefinition-example.json new file mode 100644 index 000000000000..629be77da6de --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/GetRoleDefinition-example.json @@ -0,0 +1,34 @@ +{ + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "/", + "api-version": "7.6-preview.1", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleAssignments-example.json new file mode 100644 index 000000000000..9e36f3d83474 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleAssignments-example.json @@ -0,0 +1,27 @@ +{ + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleDefinitions-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleDefinitions-example.json new file mode 100644 index 000000000000..94fd5b1fdc61 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/ListRoleDefinitions-example.json @@ -0,0 +1,38 @@ +{ + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "roleName": "Role name", + "type": "roletype", + "description": "Role description", + "assignableScopes": [ + "/keys" + ], + "permissions": [ + { + "actions": [ + "get" + ], + "notActions": [] + } + ] + }, + "id": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "roleDefinitionId" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleAssignments-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleAssignments-example.json new file mode 100644 index 000000000000..98a2cabdba40 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleAssignments-example.json @@ -0,0 +1,30 @@ +{ + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleAssignmentName": "roleAssignmentName", + "parameters": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId" + } + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleDefinitionId": "/keys/providers/Microsoft.Authorization/roleDefinitions/roleDefinitionId", + "principalId": "principalId", + "scope": "/keys" + }, + "id": "/keys/providers/Microsoft.Authorization/roleAssignments/roleAssignmentId", + "type": "Microsoft.Authorization/roleAssignments", + "name": "roleAssignmentId" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleDefinition-example.json b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleDefinition-example.json new file mode 100644 index 000000000000..42b977667d63 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/examples/7.6-preview.1/PutRoleDefinition-example.json @@ -0,0 +1,48 @@ +{ + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "scope": "keys", + "roleDefinitionName": "00000000-0000-0000-0000-000000000000", + "parameters": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + } + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "201": { + "body": { + "properties": { + "roleName": "My custom role", + "type": "CustomRole", + "description": "Role description", + "assignableScopes": [ + "/" + ], + "permissions": [ + { + "dataActions": [ + "Microsoft.KeyVault/managedHsm/keys/sign/action" + ] + } + ] + }, + "id": "Microsoft.KeyVault/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Authorization/roleDefinitions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/main.tsp b/specification/keyvault/Security.KeyVault.RBAC/main.tsp new file mode 100644 index 000000000000..2edcfd9b554e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/main.tsp @@ -0,0 +1,58 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-08-12T15:37:41.195Z + */ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +/** + * The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + */ +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://vault.azure.net/.default"], + } + ]> +) +@service({ + title: "KeyVaultClient", +}) +@versioned(Versions) +@server( + "{vaultBaseUrl}", + "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + { + vaultBaseUrl: url, + } +) +namespace KeyVault; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 7.5 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.5`: "7.5", + + /** + * The 7.6-preview.1 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.6_preview.1`: "7.6-preview.1", +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/models.tsp b/specification/keyvault/Security.KeyVault.RBAC/models.tsp new file mode 100644 index 000000000000..2a3cddedf5cc --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/models.tsp @@ -0,0 +1,462 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "../Security.KeyVault.Common/common.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; +using Azure.Core; + +namespace KeyVault; + +/** + * The role definition type. + */ +union RoleDefinitionType { + string, + + /** + * Microsoft-defined role definitions. + */ + `Microsoft.Authorization/roleDefinitions`: "Microsoft.Authorization/roleDefinitions", +} + +/** + * The role type. + */ +union RoleType { + string, + + /** + * Built in role. + */ + BuiltInRole: "AKVBuiltInRole", + + /** + * Custom role. + */ + CustomRole: "CustomRole", +} + +/** + * Supported permissions for data actions. + */ +union DataAction { + string, + + /** + * Read HSM key metadata. + */ + ReadHsmKey: "Microsoft.KeyVault/managedHsm/keys/read/action", + + /** + * Update an HSM key. + */ + WriteHsmKey: "Microsoft.KeyVault/managedHsm/keys/write/action", + + /** + * Read deleted HSM key. + */ + ReadDeletedHsmKey: "Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action", + + /** + * Recover deleted HSM key. + */ + RecoverDeletedHsmKey: "Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action", + + /** + * Backup HSM keys. + */ + BackupHsmKeys: "Microsoft.KeyVault/managedHsm/keys/backup/action", + + /** + * Restore HSM keys. + */ + RestoreHsmKeys: "Microsoft.KeyVault/managedHsm/keys/restore/action", + + /** + * Delete role assignment. + */ + DeleteRoleAssignment: "Microsoft.KeyVault/managedHsm/roleAssignments/delete/action", + + /** + * Get role assignment. + */ + GetRoleAssignment: "Microsoft.KeyVault/managedHsm/roleAssignments/read/action", + + /** + * Create or update role assignment. + */ + WriteRoleAssignment: "Microsoft.KeyVault/managedHsm/roleAssignments/write/action", + + /** + * Get role definition. + */ + ReadRoleDefinition: "Microsoft.KeyVault/managedHsm/roleDefinitions/read/action", + + /** + * Create or update role definition. + */ + WriteRoleDefinition: "Microsoft.KeyVault/managedHsm/roleDefinitions/write/action", + + /** + * Delete role definition. + */ + DeleteRoleDefinition: "Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action", + + /** + * Encrypt using an HSM key. + */ + EncryptHsmKey: "Microsoft.KeyVault/managedHsm/keys/encrypt/action", + + /** + * Decrypt using an HSM key. + */ + DecryptHsmKey: "Microsoft.KeyVault/managedHsm/keys/decrypt/action", + + /** + * Wrap using an HSM key. + */ + WrapHsmKey: "Microsoft.KeyVault/managedHsm/keys/wrap/action", + + /** + * Unwrap using an HSM key. + */ + UnwrapHsmKey: "Microsoft.KeyVault/managedHsm/keys/unwrap/action", + + /** + * Sign using an HSM key. + */ + SignHsmKey: "Microsoft.KeyVault/managedHsm/keys/sign/action", + + /** + * Verify using an HSM key. + */ + VerifyHsmKey: "Microsoft.KeyVault/managedHsm/keys/verify/action", + + /** + * Create an HSM key. + */ + CreateHsmKey: "Microsoft.KeyVault/managedHsm/keys/create", + + /** + * Delete an HSM key. + */ + DeleteHsmKey: "Microsoft.KeyVault/managedHsm/keys/delete", + + /** + * Export an HSM key. + */ + ExportHsmKey: "Microsoft.KeyVault/managedHsm/keys/export/action", + + /** + * Release an HSM key using Secure Key Release. + */ + ReleaseKey: "Microsoft.KeyVault/managedHsm/keys/release/action", + + /** + * Import an HSM key. + */ + ImportHsmKey: "Microsoft.KeyVault/managedHsm/keys/import/action", + + /** + * Purge a deleted HSM key. + */ + PurgeDeletedHsmKey: "Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete", + + /** + * Download an HSM security domain. + */ + DownloadHsmSecurityDomain: "Microsoft.KeyVault/managedHsm/securitydomain/download/action", + + /** + * Check status of HSM security domain download. + */ + DownloadHsmSecurityDomainStatus: "Microsoft.KeyVault/managedHsm/securitydomain/download/read", + + /** + * Upload an HSM security domain. + */ + UploadHsmSecurityDomain: "Microsoft.KeyVault/managedHsm/securitydomain/upload/action", + + /** + * Check the status of the HSM security domain exchange file. + */ + ReadHsmSecurityDomainStatus: "Microsoft.KeyVault/managedHsm/securitydomain/upload/read", + + /** + * Download an HSM security domain transfer key. + */ + ReadHsmSecurityDomainTransferKey: "Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read", + + /** + * Start an HSM backup. + */ + StartHsmBackup: "Microsoft.KeyVault/managedHsm/backup/start/action", + + /** + * Start an HSM restore. + */ + StartHsmRestore: "Microsoft.KeyVault/managedHsm/restore/start/action", + + /** + * Read an HSM backup status. + */ + ReadHsmBackupStatus: "Microsoft.KeyVault/managedHsm/backup/status/action", + + /** + * Read an HSM restore status. + */ + ReadHsmRestoreStatus: "Microsoft.KeyVault/managedHsm/restore/status/action", + + /** + * Generate random numbers. + */ + RandomNumbersGenerate: "Microsoft.KeyVault/managedHsm/rng/action", +} + +/** + * The role scope. + */ +union RoleScope { + string, + + /** + * Global scope + */ + Global: "/", + + /** + * Keys scope + */ + Keys: "/keys", +} + +/** + * Role definition. + */ +model RoleDefinition { + /** + * The role definition ID. + */ + @visibility("read") + id?: string; + + /** + * The role definition name. + */ + @visibility("read") + name?: string; + + /** + * The role definition type. + */ + @visibility("read") + type?: RoleDefinitionType; + + /** + * Role definition properties. + */ + #suppress "deprecated" "Property flattening is necessary for Key Vault" + @flattenProperty + properties?: RoleDefinitionProperties; +} + +/** + * Role definition properties. + */ +model RoleDefinitionProperties { + /** + * The role name. + */ + roleName?: string; + + /** + * The role definition description. + */ + description?: string; + + /** + * The role type. + */ + @encodedName("application/json", "type") + roleType?: RoleType; + + /** + * Role definition permissions. + */ + permissions?: Permission[]; + + /** + * Role definition assignable scopes. + */ + assignableScopes?: RoleScope[]; +} + +/** + * Role definition permissions. + */ +model Permission { + /** + * Action permissions that are granted. + */ + actions?: string[]; + + /** + * Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. + */ + notActions?: string[]; + + /** + * Data action permissions that are granted. + */ + dataActions?: DataAction[]; + + /** + * Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. + */ + notDataActions?: DataAction[]; +} + +/** + * Role definition create parameters. + */ +model RoleDefinitionCreateParameters { + /** + * Role definition properties. + */ + properties: RoleDefinitionProperties; +} + +/** + * Role definition list operation result. + */ +@pagedResult +model RoleDefinitionListResult { + /** + * Role definition list. + */ + @items + value?: RoleDefinition[]; + + /** + * The URL to use for getting the next set of results. + */ + @TypeSpec.nextLink + nextLink?: string; +} + +/** + * Role Assignments + */ +model RoleAssignment { + /** + * The role assignment ID. + */ + @visibility("read") + id?: string; + + /** + * The role assignment name. + */ + @visibility("read") + name?: string; + + /** + * The role assignment type. + */ + @visibility("read") + type?: string; + + /** + * Role assignment properties. + */ + properties?: RoleAssignmentPropertiesWithScope; +} + +/** + * Role assignment properties with scope. + */ +model RoleAssignmentPropertiesWithScope { + /** + * The role scope. + */ + scope?: RoleScope; + + /** + * The role definition ID. + */ + roleDefinitionId?: string; + + /** + * The principal ID. + */ + principalId?: string; +} + +/** + * Role assignment create parameters. + */ +model RoleAssignmentCreateParameters { + /** + * Role assignment properties. + */ + properties: RoleAssignmentProperties; +} + +/** + * Role assignment properties. + */ +model RoleAssignmentProperties { + /** + * The role definition ID used in the role assignment. + */ + roleDefinitionId: string; + + /** + * The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group. + */ + principalId: string; +} + +/** + * Role assignment list operation result. + */ +@pagedResult +model RoleAssignmentListResult { + /** + * Role assignment list. + */ + @items + value?: RoleAssignment[]; + + /** + * The URL to use for getting the next set of results. + */ + @TypeSpec.nextLink + nextLink?: string; +} + +/** + * Role Assignments filter + */ +model RoleAssignmentFilter { + /** + * Returns role assignment of the specific principal. + */ + principalId?: string; +} + +/** + * Role Definitions filter + */ +model RoleDefinitionFilter { + /** + * Returns role definition with the specific name. + */ + roleName?: string; +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/routes.tsp b/specification/keyvault/Security.KeyVault.RBAC/routes.tsp new file mode 100644 index 000000000000..20de3efad201 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/routes.tsp @@ -0,0 +1,195 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using Azure.Core; + +namespace KeyVault; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +interface RoleDefinitions { + /** + * Deletes a custom role definition. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}") + @delete + delete is KeyVaultOperation< + { + /** + * The scope of the role definition to delete. Managed HSM only supports '/'. + */ + scope: string; + + /** + * The name (GUID) of the role definition to delete. + */ + @path + roleDefinitionName: string; + }, + RoleDefinition + >; + + /** + * Creates or updates a custom role definition. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}") + @put + createOrUpdate is KeyVaultOperation< + { + /** + * The scope of the role definition to create or update. Managed HSM only supports '/'. + */ + scope: string; + + /** + * The name of the role definition to create or update. It can be any valid GUID. + */ + @path + roleDefinitionName: string; + + /** + * Parameters for the role definition. + */ + @body + parameters: RoleDefinitionCreateParameters; + }, + CreatedResponse & RoleDefinition + >; + + /** + * Get the specified role definition. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}") + @get + get is KeyVaultOperation< + { + /** + * The scope of the role definition to get. Managed HSM only supports '/'. + */ + scope: string; + + /** + * The name of the role definition to get. + */ + @path + roleDefinitionName: string; + }, + RoleDefinition + >; + + /** + * Get all role definitions that are applicable at scope and above. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleDefinitions") + @get + list is KeyVaultOperation< + { + /** + * The scope of the role definition. + */ + scope: string; + + /** + * The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. + */ + @query("$filter") + $filter?: string; + }, + RoleDefinitionListResult + >; +} + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +interface RoleAssignments { + /** + * Deletes a role assignment. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}") + @delete + delete is KeyVaultOperation< + { + /** + * The scope of the role assignment to delete. + */ + scope: string; + + /** + * The name of the role assignment to delete. + */ + @path + roleAssignmentName: string; + }, + RoleAssignment + >; + + /** + * Creates a role assignment. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}") + @put + create is KeyVaultOperation< + { + /** + * The scope of the role assignment to create. + */ + scope: string; + + /** + * The name of the role assignment to create. It can be any valid GUID. + */ + @path + roleAssignmentName: string; + + /** + * Parameters for the role assignment. + */ + @body + parameters: RoleAssignmentCreateParameters; + }, + CreatedResponse & RoleAssignment + >; + + /** + * Get the specified role assignment. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}") + @get + get is KeyVaultOperation< + { + /** + * The scope of the role assignment. + */ + scope: string; + + /** + * The name of the role assignment to get. + */ + @path + roleAssignmentName: string; + }, + RoleAssignment + >; + + /** + * Gets role assignments for a scope. + */ + @route("/{+scope}/providers/Microsoft.Authorization/roleAssignments") + @get + listForScope is KeyVaultOperation< + { + /** + * The scope of the role assignments. + */ + scope: string; + + /** + * The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal. + */ + @query("$filter") + $filter?: string; + }, + RoleAssignmentListResult + >; +} diff --git a/specification/keyvault/Security.KeyVault.RBAC/tspconfig.yaml b/specification/keyvault/Security.KeyVault.RBAC/tspconfig.yaml new file mode 100644 index 000000000000..fabff9b37d58 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.RBAC/tspconfig.yaml @@ -0,0 +1,36 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.Common/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/rbac.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + # "@azure-tools/typespec-python": true + # Uncomment this line and add "@azure-tools/typespec-java" to your package.json to generate Java code + # "@azure-tools/typespec-java": true + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + # "@azure-tools/typespec-csharp": true + # Uncomment this line and add "@azure-tools/typespec-ts" to your package.json to generate TypeSpec code + # "@azure-tools/typespec-ts": true + "@azure-tools/typespec-go": + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/azadmin" + module-version: "0.0.1" + service-dir: "sdk/security/keyvault" + package-dir: "azadmin/rbac" + api-version: "7.5" + inject-spans: true + single-client: true diff --git a/specification/keyvault/Security.KeyVault.Settings/client.tsp b/specification/keyvault/Security.KeyVault.Settings/client.tsp new file mode 100644 index 000000000000..bc3a1e515535 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/client.tsp @@ -0,0 +1,10 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(KeyVault, "Client", "go"); + +using KeyVault; + +@@clientName(SettingTypeEnum, "SettingType", "go"); diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.5/GetSetting-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/GetSetting-example.json new file mode 100644 index 000000000000..a2f7f06ce0b0 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/GetSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSetting", + "title": "Get key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.5", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.5/ListSettings-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/ListSettings-example.json new file mode 100644 index 000000000000..4efac371aa13 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/ListSettings-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSettings", + "title": "List account settings", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "settings": [ + { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.5/UpdateSetting-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/UpdateSetting-example.json new file mode 100644 index 000000000000..57f6dd843061 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.5/UpdateSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "UpdateSetting", + "title": "Update key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.5", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/GetSetting-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/GetSetting-example.json new file mode 100644 index 000000000000..74cb93c4ef0c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/GetSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSetting", + "title": "Get key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.6-preview.1", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/ListSettings-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/ListSettings-example.json new file mode 100644 index 000000000000..6618dd399e6a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/ListSettings-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSettings", + "title": "List account settings", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "settings": [ + { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + ] + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/UpdateSetting-example.json b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/UpdateSetting-example.json new file mode 100644 index 000000000000..416b0b4e578d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/examples/7.6-preview.1/UpdateSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "UpdateSetting", + "title": "Update key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.6-preview.1", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/Security.KeyVault.Settings/main.tsp b/specification/keyvault/Security.KeyVault.Settings/main.tsp new file mode 100644 index 000000000000..2edcfd9b554e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/main.tsp @@ -0,0 +1,58 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-08-12T15:37:41.195Z + */ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +/** + * The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + */ +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://vault.azure.net/.default"], + } + ]> +) +@service({ + title: "KeyVaultClient", +}) +@versioned(Versions) +@server( + "{vaultBaseUrl}", + "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + { + vaultBaseUrl: url, + } +) +namespace KeyVault; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 7.5 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.5`: "7.5", + + /** + * The 7.6-preview.1 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.6_preview.1`: "7.6-preview.1", +} diff --git a/specification/keyvault/Security.KeyVault.Settings/models.tsp b/specification/keyvault/Security.KeyVault.Settings/models.tsp new file mode 100644 index 000000000000..75919ca03934 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/models.tsp @@ -0,0 +1,79 @@ +import "@typespec/http"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@azure-tools/typespec-azure-core"; +import "../Security.KeyVault.Common/common.tsp"; + +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using TypeSpec.Rest; +using Azure.Core; + +namespace KeyVault; + +/** + * Setting name parameter. + */ +model SettingNameParameter { + /** + * The name of the account setting. Must be a valid settings option. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Extension needed for backwards compatibility" + @OpenAPI.extension("x-ms-parameter-location", "method") + @path + `setting-name`: string; +} + +/** + * The type specifier of the value. + */ +union SettingTypeEnum { + string, + + /** + * A boolean setting value. + */ + boolean: "boolean", +} + +/** + * The update settings request object. + */ +model UpdateSettingRequest { + /** + * The value of the pool setting. + */ + value: string; +} + +/** + * A Key Vault account setting. + */ +model Setting { + /** + * The account setting to be updated + */ + name: string; + + /** + * The value of the pool setting. + */ + value: string; + + /** + * The type specifier of the value. + */ + type?: SettingTypeEnum; +} + +/** + * The settings list result. + */ +model SettingsListResult { + /** + * A response message containing a list of account settings with their associated value. + */ + @visibility("read") + settings?: Setting[]; +} diff --git a/specification/keyvault/Security.KeyVault.Settings/routes.tsp b/specification/keyvault/Security.KeyVault.Settings/routes.tsp new file mode 100644 index 000000000000..3dd4a95737cd --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/routes.tsp @@ -0,0 +1,59 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +namespace KeyVault; + +/** + * Description of the pool setting to be updated + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@parameterVisibility +@summary("Updates key vault account setting, stores it, then returns the setting name and value to the client.") +@route("/settings/{setting-name}") +@patch +op updateSetting is KeyVaultOperation< + { + ...SettingNameParameter; + + /** + * The parameters to update an account setting. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Extension needed for backwards compatibility" + @OpenAPI.extension("x-ms-client-flatten", true) + @body + parameters: UpdateSettingRequest; + }, + Setting +>; + +/** + * Retrieves the setting object of a specified setting name. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Get specified account setting object.") +@route("/settings/{setting-name}") +@get +op getSetting is KeyVaultOperation< + { + ...SettingNameParameter; + }, + Setting +>; + +/** + * Retrieves a list of all the available account settings that can be configured. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("List account settings.") +@route("/settings") +@get +op getSettings is KeyVaultOperation<{}, SettingsListResult>; diff --git a/specification/keyvault/Security.KeyVault.Settings/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Settings/tspconfig.yaml new file mode 100644 index 000000000000..e2303032f5f2 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Settings/tspconfig.yaml @@ -0,0 +1,36 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.Common/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/settings.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + # "@azure-tools/typespec-python": true + # Uncomment this line and add "@azure-tools/typespec-java" to your package.json to generate Java code + # "@azure-tools/typespec-java": true + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + # "@azure-tools/typespec-csharp": true + # Uncomment this line and add "@azure-tools/typespec-ts" to your package.json to generate TypeSpec code + # "@azure-tools/typespec-ts": true + "@azure-tools/typespec-go": + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/azadmin" + module-version: "0.0.1" + service-dir: "sdk/security/keyvault" + package-dir: "azadmin/settings" + api-version: "7.5" + inject-spans: true + single-client: true diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/backuprestore.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/backuprestore.json index d9967d8562eb..b801a9a340d8 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/backuprestore.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/backuprestore.json @@ -2,472 +2,557 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.6-preview.1", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.6-preview.1" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { "/backup": { "post": { - "tags": [ - "FullBackup" - ], "operationId": "FullBackup", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, "description": "Creates a full backup using a user-provided SAS token to an Azure blob storage container.", "parameters": [ { - "in": "body", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { "name": "azureStorageBlobContainerUri", + "in": "body", + "description": "Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call.", + "required": true, "schema": { "$ref": "#/definitions/SASTokenParameter" - }, - "description": "Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "202": { - "description": "Started full backup", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/FullBackupOperation" + }, "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/FullBackupOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Create full backup": { + "Create a full backup": { "$ref": "./examples/FullBackup-example.json" } - } - } - }, - "/prebackup": { - "post": { - "tags": [ - "PreFullBackup" - ], - "operationId": "PreFullBackup", - "x-ms-long-running-operation": true, + }, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" }, - "description": "Pre-backup operation for checking whether the customer can perform a full backup operation.", + "x-ms-long-running-operation": true + } + }, + "/backup/{jobId}/pending": { + "get": { + "operationId": "FullBackupStatus", + "description": "Returns the status of full backup operation", "parameters": [ { - "in": "body", - "name": "preBackupOperationParameters", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "jobId", + "in": "path", + "description": "The id returned as part of the backup request", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/PreBackupOperationParameters" - }, - "description": "Optional parameters to validate prior to performing a full backup operation." + "$ref": "#/definitions/FullBackupOperation" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "Get the status of a full backup operation": { + "$ref": "./examples/FullBackup-pending-example.json" + } + } + } + }, + "/keys/{keyName}/restore": { + "put": { + "operationId": "SelectiveKeyRestoreOperation", + "description": "Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "keyName", + "in": "path", + "description": "The name of the key to be restored from the user supplied backup", + "required": true, + "type": "string" + }, + { + "name": "restoreBlobDetails", + "in": "body", + "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored", + "required": true, + "schema": { + "$ref": "#/definitions/SelectiveKeyRestoreOperationParameters" + } } ], "responses": { "202": { - "description": "Queued validating pre full backup operation", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/SelectiveKeyRestoreOperation" + }, "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "The URI to poll for completion status." + }, "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", "type": "integer", - "format": "int32" - }, - "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/FullBackupOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Start pre backup validation operation.": { - "$ref": "./examples/PreFullBackup-example.json" + "Restores all key versions of a given key": { + "$ref": "./examples/SelectiveRestore-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, - "/backup/{jobId}/pending": { - "get": { - "tags": [ - "FullBackup" - ], - "operationId": "FullBackupStatus", - "description": "Returns the status of full backup operation", + "/prebackup": { + "post": { + "operationId": "PreFullBackup", + "description": "Pre-backup operation for checking whether the customer can perform a full backup operation.", "parameters": [ { - "name": "jobId", - "in": "path", - "required": true, - "type": "string", - "description": "The id returned as part of the backup request" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "preBackupOperationParameters", + "in": "body", + "description": "Optional parameters to validate prior to performing a full backup operation.", + "required": true, + "schema": { + "$ref": "#/definitions/PreBackupOperationParameters" + } } ], "responses": { - "200": { - "description": "OK - Returns the full backup status", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/FullBackupOperation" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." + } } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Full backup status": { - "$ref": "./examples/FullBackup-pending-example.json" + "Check whether the customer can perform a full backup operation": { + "$ref": "./examples/PreFullBackup-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/prerestore": { "put": { - "tags": [ - "PreFullRestore" - ], "operationId": "PreFullRestoreOperation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, "description": "Pre-restore operation for checking whether the customer can perform a full restore operation.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "preRestoreOperationParameters", "in": "body", + "description": "Optional pre restore parameters to validate prior to performing a full restore operation.", + "required": true, "schema": { "$ref": "#/definitions/PreRestoreOperationParameters" - }, - "description": "Optional pre restore parameters to validate prior to performing a full restore operation." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "202": { - "description": "Queued pre restore operation validation.", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/RestoreOperation" + }, "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "The URI to poll for completion status." + }, "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", "type": "integer", - "format": "int32" - }, - "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/RestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Start pre restore validation operation.": { + "Check whether the customer can perform a full restore operation": { "$ref": "./examples/PreFullRestore-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/restore": { "put": { - "tags": [ - "FullRestore" - ], "operationId": "FullRestoreOperation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, "description": "Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "restoreBlobDetails", "in": "body", + "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored.", + "required": true, "schema": { "$ref": "#/definitions/RestoreOperationParameters" - }, - "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "202": { - "description": "Started restore operation from the previously stored backup", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/RestoreOperation" + }, "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/RestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Create full restore from backup": { + "Restore all key materials from a previously stored Azure Blob Storage backup": { "$ref": "./examples/FullRestore-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/restore/{jobId}/pending": { "get": { - "tags": [ - "FullRestore" - ], "operationId": "RestoreStatus", "description": "Returns the status of restore operation", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "jobId", "in": "path", + "description": "The Job Id returned part of the restore operation", "required": true, - "type": "string", - "description": "The Job Id returned part of the restore operation" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns the full restore status", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/RestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Restore status": { + "Get the status of restore operation": { "$ref": "./examples/Restore-pending-example.json" } } } - }, - "/keys/{keyName}/restore": { - "put": { - "tags": [ - "Keys" - ], - "operationId": "SelectiveKeyRestoreOperation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "description": "Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder", + } + }, + "x-ms-paths": { + "/restore/{jobId}/pending?_overload=selectiveKeyRestoreStatus": { + "get": { + "operationId": "SelectiveKeyRestoreStatus", + "description": "Returns the status of the selective key restore operation", "parameters": [ { - "name": "keyName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the key to be restored from the user supplied backup" - }, - { - "name": "restoreBlobDetails", - "in": "body", - "schema": { - "$ref": "#/definitions/SelectiveKeyRestoreOperationParameters" - }, - "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "jobId", + "in": "path", + "description": "The Job Id returned part of the restore operation", + "required": true, + "type": "string" } ], "responses": { - "202": { - "description": "Started selective key restore operation from the previously stored backup", - "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, - "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" - } - }, + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SelectiveKeyRestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Selectively restore key from a backup": { - "$ref": "./examples/SelectiveRestore-example.json" + "Get the status of a selective restore operation": { + "$ref": "./examples/SelectiveRestore-pending-example.json" } } } } }, "definitions": { - "PreRestoreOperationParameters": { - "properties": { - "sasTokenParameters": { - "$ref": "#/definitions/SASTokenParameter" - }, - "folderToRestore": { - "type": "string", - "description": "The Folder name of the blob where the previous successful full backup was stored" - } - }, - "type": "object" - }, - "RestoreOperationParameters": { + "Error": { + "type": "object", "properties": { - "sasTokenParameters": { - "$ref": "#/definitions/SASTokenParameter" - }, - "folderToRestore": { + "code": { "type": "string", - "description": "The Folder name of the blob where the previous successful full backup was stored" - } - }, - "required": [ - "folderToRestore", - "sasTokenParameters" - ] - }, - "SelectiveKeyRestoreOperationParameters": { - "properties": { - "sasTokenParameters": { - "$ref": "#/definitions/SASTokenParameter" + "description": "The error code.", + "readOnly": true }, - "folder": { + "message": { "type": "string", - "description": "The Folder name of the blob where the previous successful full backup was stored" + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "required": [ - "folder", - "sasTokenParameters" - ] + "x-nullable": true }, - "SelectiveKeyRestoreOperation": { + "FullBackupOperation": { + "type": "object", + "description": "Full backup operation", "properties": { "status": { - "type": "string", - "description": "Status of the restore operation." + "$ref": "#/definitions/OperationStatus", + "description": "Status of the backup operation." }, "statusDetails": { "type": "string", - "description": "The status details of restore operation." + "description": "The status details of backup operation." }, "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the selective key restore operation." - }, - "jobId": { - "type": "string", - "description": "Identifier for the selective key restore operation." + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the full backup operation." }, "startTime": { "type": "integer", "format": "unixtime", - "description": "The start time of the restore operation" + "description": "The start time of the backup operation in UTC" }, "endTime": { "type": "integer", "format": "unixtime", - "description": "The end time of the restore operation", + "description": "The end time of the backup operation in UTC", "x-nullable": true + }, + "jobId": { + "type": "string", + "description": "Identifier for the full backup operation." + }, + "azureStorageBlobContainerUri": { + "type": "string", + "description": "The Azure blob storage container Uri which contains the full backup" } - }, - "description": "Selective Key Restore operation" + } }, - "SASTokenParameter": { + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } + }, + "OperationStatus": { + "type": "string", + "description": "The status of a long-running operation.", + "enum": [ + "InProgress", + "Succeeded", + "Canceled", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is in progress." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation successfully completed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed." + } + ] + } + }, + "PreBackupOperationParameters": { + "type": "object", + "description": "The authentication method and location for the backup operation.", "properties": { "storageResourceUri": { "type": "string", @@ -479,72 +564,104 @@ }, "useManagedIdentity": { "type": "boolean", - "default": false, - "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified." + "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified.", + "default": false } - }, - "required": [ - "storageResourceUri" - ] + } }, - "PreBackupOperationParameters": { + "PreRestoreOperationParameters": { + "type": "object", + "description": "The authentication method and location for the restore operation.", "properties": { - "storageResourceUri": { - "type": "string", - "description": "Azure Blob storage container Uri" + "sasTokenParameters": { + "$ref": "#/definitions/SASTokenParameter", + "description": "A user-provided SAS token to an Azure blob storage container." }, - "token": { + "folderToRestore": { "type": "string", - "description": "The SAS token pointing to an Azure Blob storage container" - }, - "useManagedIdentity": { - "type": "boolean", - "default": false, - "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified." + "description": "The Folder name of the blob where the previous successful full backup was stored" } - }, - "type": "object" + } }, - "FullBackupOperation": { + "RestoreOperation": { + "type": "object", + "description": "Restore operation", "properties": { "status": { - "type": "string", - "description": "Status of the backup operation." + "$ref": "#/definitions/OperationStatus", + "description": "Status of the restore operation." }, "statusDetails": { "type": "string", - "description": "The status details of backup operation." + "description": "The status details of restore operation." }, "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the full backup operation." + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the restore operation." + }, + "jobId": { + "type": "string", + "description": "Identifier for the restore operation." }, "startTime": { "type": "integer", "format": "unixtime", - "description": "The start time of the backup operation in UTC" + "description": "The start time of the restore operation" }, "endTime": { "type": "integer", "format": "unixtime", - "description": "The end time of the backup operation in UTC", + "description": "The end time of the restore operation", "x-nullable": true + } + } + }, + "RestoreOperationParameters": { + "type": "object", + "description": "The authentication method and location for the restore operation.", + "properties": { + "sasTokenParameters": { + "$ref": "#/definitions/SASTokenParameter", + "description": "A user-provided SAS token to an Azure blob storage container." }, - "jobId": { + "folderToRestore": { "type": "string", - "description": "Identifier for the full backup operation." + "description": "The Folder name of the blob where the previous successful full backup was stored" + } + }, + "required": [ + "sasTokenParameters", + "folderToRestore" + ] + }, + "SASTokenParameter": { + "type": "object", + "description": "An authentication method and location for the operation.", + "properties": { + "storageResourceUri": { + "type": "string", + "description": "Azure Blob storage container Uri" }, - "azureStorageBlobContainerUri": { + "token": { "type": "string", - "description": "The Azure blob storage container Uri which contains the full backup" + "description": "The SAS token pointing to an Azure Blob storage container" + }, + "useManagedIdentity": { + "type": "boolean", + "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified.", + "default": false } }, - "description": "Full backup operation" + "required": [ + "storageResourceUri" + ] }, - "RestoreOperation": { + "SelectiveKeyRestoreOperation": { + "type": "object", + "description": "Selective Key Restore operation", "properties": { "status": { - "type": "string", + "$ref": "#/definitions/OperationStatus", "description": "Status of the restore operation." }, "statusDetails": { @@ -552,12 +669,12 @@ "description": "The status details of restore operation." }, "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the restore operation." + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the selective key restore operation." }, "jobId": { "type": "string", - "description": "Identifier for the restore operation." + "description": "Identifier for the selective key restore operation." }, "startTime": { "type": "integer", @@ -570,8 +687,37 @@ "description": "The end time of the restore operation", "x-nullable": true } + } + }, + "SelectiveKeyRestoreOperationParameters": { + "type": "object", + "description": "The authentication method and location for the selective key restore operation.", + "properties": { + "sasTokenParameters": { + "$ref": "#/definitions/SASTokenParameter", + "description": "A user-provided SAS token to an Azure blob storage container." + }, + "folder": { + "type": "string", + "description": "The Folder name of the blob where the previous successful full backup was stored" + } }, - "description": "Restore operation" + "required": [ + "sasTokenParameters", + "folder" + ] + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleAssignments-example.json index 5188418ad606..c56d1104b450 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleDefinition-example.json index 70747b973ce3..19a2eb6ae85f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "/", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-example.json index f846660572dc..3f48de356ce4 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullBackup", + "title": "Create a full backup", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "azureStorageBlobContainerUri": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-pending-example.json index 1a7f7899e722..9a16f1ce18a1 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-pending-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullBackup-pending-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "jobId": "45aacd568ab049a2803861e8dd3ae21f", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullRestore-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullRestore-example.json index 618592c05776..e27c3da93970 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullRestore-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/FullRestore-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", "parameters": { "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", "restoreBlobDetails": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleAssignments-example.json index 5188418ad606..24626dc00f8b 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleDefinition-example.json index af196bc9b065..629be77da6de 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "/", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSetting-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSetting-example.json new file mode 100644 index 000000000000..74cb93c4ef0c --- /dev/null +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSetting", + "title": "Get key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.6-preview.1", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleAssignments-example.json index 832a986b08ab..9e36f3d83474 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleDefinitions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleDefinitions-example.json index d6e087db66ff..94fd5b1fdc61 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleDefinitions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListRoleDefinitions-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListSettings-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListSettings-example.json index 8aa16bad766f..6618dd399e6a 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListSettings-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ListSettings-example.json @@ -1,4 +1,6 @@ { + "operationId": "GetSettings", + "title": "List account settings", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "api-version": "7.6-preview.1" diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullBackup-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullBackup-example.json index c3fb0e22a26a..ebf91973c16b 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullBackup-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullBackup-example.json @@ -1,4 +1,6 @@ { + "operationId": "PreFullBackup", + "title": "Check whether the customer can perform a full backup operation", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "preBackupOperationParameters": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullRestore-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullRestore-example.json index 92524251933d..0f59f555b310 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullRestore-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PreFullRestore-example.json @@ -1,4 +1,6 @@ { + "operationId": "PreFullRestoreOperation", + "title": "Check whether the customer can perform a full restore operation", "parameters": { "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", "preRestoreOperationParameters": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleAssignments-example.json index 8278e7894e6a..98a2cabdba40 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleDefinition-example.json index 28ad3af6cbee..42b977667d63 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PutRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/Restore-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/Restore-pending-example.json index 71e897b32376..b7c7c06b84bc 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/Restore-pending-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/Restore-pending-example.json @@ -1,4 +1,6 @@ { + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "jobId": "45aacd568ab049a2803861e8dd3ae21f", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-example.json index 66485e9de8fd..aeb59a262068 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-example.json @@ -1,4 +1,6 @@ { + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net", "keyName": "hsm-mail-key", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..7f9412302a5b --- /dev/null +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSetting-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSetting-example.json index adc50ec13d9c..416b0b4e578d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSetting-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSetting-example.json @@ -1,4 +1,6 @@ { + "operationId": "UpdateSetting", + "title": "Update key vault account setting", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "setting-name": "AllowKeyManagementOperationsThroughARM", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/rbac.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/rbac.json index b03620c1c670..9246682a9a2f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/rbac.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/rbac.json @@ -2,707 +2,434 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.6-preview.1", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.6-preview.1" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}": { - "delete": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_Delete", - "description": "Deletes a custom role definition.", + "/{scope}/providers/Microsoft.Authorization/roleAssignments": { + "get": { + "operationId": "RoleAssignments_ListForScope", + "description": "Gets role assignments for a scope.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignments.", "required": true, "type": "string", - "description": "The scope of the role definition to delete. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RoleAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "Get role assignments for a scope": { + "$ref": "./examples/ListRoleAssignments-example.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}": { + "get": { + "operationId": "RoleAssignments_Get", + "description": "Get the specified role assignment.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "scope", "in": "path", + "description": "The scope of the role assignment.", "required": true, "type": "string", - "description": "The name (GUID) of the role definition to delete." + "x-ms-skip-url-encoding": true }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "roleAssignmentName", + "in": "path", + "description": "The name of the role assignment to get.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role definition that was deleted.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteRoleDefinition": { - "$ref": "./examples/DeleteRoleDefinition-example.json" + "Get the specified role assignment": { + "$ref": "./examples/GetRoleAssignments-example.json" } } }, "put": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_CreateOrUpdate", - "description": "Creates or updates a custom role definition.", + "operationId": "RoleAssignments_Create", + "description": "Creates a role assignment.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignment to create.", "required": true, "type": "string", - "description": "The scope of the role definition to create or update. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "roleAssignmentName", "in": "path", + "description": "The name of the role assignment to create. It can be any valid GUID.", "required": true, - "type": "string", - "description": "The name of the role definition to create or update. It can be any valid GUID." + "type": "string" }, { "name": "parameters", "in": "body", + "description": "Parameters for the role assignment.", "required": true, "schema": { - "$ref": "#/definitions/RoleDefinitionCreateParameters" - }, - "description": "Parameters for the role definition." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/RoleAssignmentCreateParameters" + } } ], "responses": { "201": { - "description": "Created - Returns information about the role definition.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PutRoleDefinition": { - "$ref": "./examples/PutRoleDefinition-example.json" + "Create a role assignment": { + "$ref": "./examples/PutRoleAssignments-example.json" } } }, - "get": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_Get", - "description": "Get the specified role definition.", + "delete": { + "operationId": "RoleAssignments_Delete", + "description": "Deletes a role assignment.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignment to delete.", "required": true, "type": "string", - "description": "The scope of the role definition to get. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "roleAssignmentName", "in": "path", + "description": "The name of the role assignment to delete.", "required": true, - "type": "string", - "description": "The name of the role definition to get." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role definition.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetRoleAssignments": { - "$ref": "./examples/GetRoleDefinition-example.json" + "Delete a role assignment": { + "$ref": "./examples/DeleteRoleAssignments-example.json" } } } }, "/{scope}/providers/Microsoft.Authorization/roleDefinitions": { "get": { - "tags": [ - "RoleDefinitions" - ], "operationId": "RoleDefinitions_List", "description": "Get all role definitions that are applicable at scope and above.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition.", "required": true, "type": "string", - "description": "The scope of the role definition.", "x-ms-skip-url-encoding": true }, { "name": "$filter", "in": "query", + "description": "The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well.", "required": false, - "type": "string", - "description": "The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns an array of role definitions.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/RoleDefinitionListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "ListRoleDefinitions": { + "Get all role definitions that are applicable at scope and above": { "$ref": "./examples/ListRoleDefinitions-example.json" } }, - "x-ms-odata": "#/definitions/RoleDefinitionFilter" + "x-ms-pageable": { + "nextLinkName": "nextLink" + } } }, - "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}": { - "delete": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Delete", - "description": "Deletes a role assignment.", + "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}": { + "get": { + "operationId": "RoleDefinitions_Get", + "description": "Get the specified role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to get. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment to delete.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name of the role definition to get.", "required": true, - "type": "string", - "description": "The name of the role assignment to delete." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role assignment.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteRoleAssignments": { - "$ref": "./examples/DeleteRoleAssignments-example.json" + "Get the specified role definition": { + "$ref": "./examples/GetRoleDefinition-example.json" } } }, "put": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Create", - "description": "Creates a role assignment.", + "operationId": "RoleDefinitions_CreateOrUpdate", + "description": "Creates or updates a custom role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to create or update. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment to create.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name of the role definition to create or update. It can be any valid GUID.", "required": true, - "type": "string", - "description": "The name of the role assignment to create. It can be any valid GUID." + "type": "string" }, { "name": "parameters", "in": "body", + "description": "Parameters for the role definition.", "required": true, "schema": { - "$ref": "#/definitions/RoleAssignmentCreateParameters" - }, - "description": "Parameters for the role assignment." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/RoleDefinitionCreateParameters" + } } ], "responses": { "201": { - "description": "Created - Returns information about the role assignment.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PutRoleAssignments": { - "$ref": "./examples/PutRoleAssignments-example.json" + "Create or update a custom role definition": { + "$ref": "./examples/PutRoleDefinition-example.json" } } }, - "get": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Get", - "description": "Get the specified role assignment.", + "delete": { + "operationId": "RoleDefinitions_Delete", + "description": "Deletes a custom role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to delete. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name (GUID) of the role definition to delete.", "required": true, - "type": "string", - "description": "The name of the role assignment to get." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role assignment.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetRoleAssignments": { - "$ref": "./examples/GetRoleAssignments-example.json" + "Delete a custom role definition": { + "$ref": "./examples/DeleteRoleDefinition-example.json" } } } - }, - "/{scope}/providers/Microsoft.Authorization/roleAssignments": { - "get": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_ListForScope", - "description": "Gets role assignments for a scope.", - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the role assignments.", - "x-ms-skip-url-encoding": true - }, - { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of role assignments.", - "schema": { - "$ref": "#/definitions/RoleAssignmentListResult" - } - }, - "default": { - "description": "Key Vault error response describing why the operation failed.", - "schema": { - "$ref": "common.json#/definitions/KeyVaultError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "x-ms-examples": { - "ListRoleAssignments": { - "$ref": "./examples/ListRoleAssignments-example.json" - } - }, - "x-ms-odata": "#/definitions/RoleAssignmentFilter" - } } }, "definitions": { - "RoleAssignmentFilter": { - "properties": { - "principalId": { - "type": "string", - "description": "Returns role assignment of the specific principal." - } - }, - "description": "Role Assignments filter" - }, - "RoleAssignmentPropertiesWithScope": { - "properties": { - "scope": { - "$ref": "#/definitions/RoleScope" - }, - "roleDefinitionId": { - "type": "string", - "description": "The role definition ID." - }, - "principalId": { - "type": "string", - "description": "The principal ID." - } - }, - "description": "Role assignment properties with scope." - }, - "RoleAssignment": { - "properties": { - "id": { - "type": "string", - "readOnly": true, - "description": "The role assignment ID." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The role assignment name." - }, - "type": { - "type": "string", - "readOnly": true, - "description": "The role assignment type." - }, - "properties": { - "$ref": "#/definitions/RoleAssignmentPropertiesWithScope", - "description": "Role assignment properties." - } - }, - "description": "Role Assignments" - }, - "RoleAssignmentListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleAssignment" - }, - "description": "Role assignment list." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "Role assignment list operation result." - }, - "RoleAssignmentProperties": { - "properties": { - "roleDefinitionId": { - "type": "string", - "description": "The role definition ID used in the role assignment." - }, - "principalId": { - "type": "string", - "description": "The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group." - } - }, - "required": [ - "roleDefinitionId", - "principalId" - ], - "description": "Role assignment properties." - }, - "RoleDefinitionCreateParameters": { - "properties": { - "properties": { - "$ref": "#/definitions/RoleDefinitionProperties", - "description": "Role definition properties." - } - }, - "required": [ - "properties" - ], - "description": "Role definition create parameters." - }, - "RoleAssignmentCreateParameters": { - "properties": { - "properties": { - "$ref": "#/definitions/RoleAssignmentProperties", - "description": "Role assignment properties." - } - }, - "required": [ - "properties" - ], - "description": "Role assignment create parameters." - }, - "RoleDefinitionFilter": { - "properties": { - "roleName": { - "type": "string", - "description": "Returns role definition with the specific name." - } - }, - "description": "Role Definitions filter" - }, - "Permission": { - "properties": { - "actions": { - "type": "array", - "description": "Action permissions that are granted.", - "items": { - "type": "string" - } - }, - "notActions": { - "type": "array", - "description": "Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", - "items": { - "type": "string", - "description": "Not actions." - } - }, - "dataActions": { - "type": "array", - "description": "Data action permissions that are granted.", - "items": { - "$ref": "#/definitions/DataAction" - } - }, - "notDataActions": { - "type": "array", - "description": "Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", - "items": { - "$ref": "#/definitions/DataAction" - } - } - }, - "description": "Role definition permissions." - }, - "RoleDefinitionProperties": { - "properties": { - "roleName": { - "type": "string", - "description": "The role name." - }, - "description": { - "type": "string", - "description": "The role definition description." - }, - "type": { - "type": "string", - "description": "The role type.", - "enum": [ - "AKVBuiltInRole", - "CustomRole" - ], - "x-ms-enum": { - "name": "RoleType", - "modelAsString": true, - "values": [ - { - "name": "BuiltInRole", - "value": "AKVBuiltInRole", - "description": "Built in role." - }, - { - "value": "CustomRole", - "description": "Custom role." - } - ] - }, - "x-ms-client-name": "roleType" - }, - "permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/Permission" - }, - "description": "Role definition permissions." - }, - "assignableScopes": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleScope" - }, - "description": "Role definition assignable scopes." - } - }, - "description": "Role definition properties." - }, - "RoleDefinition": { - "properties": { - "id": { - "type": "string", - "readOnly": true, - "description": "The role definition ID." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The role definition name." - }, - "type": { - "type": "string", - "description": "The role definition type.", - "readOnly": true, - "enum": [ - "Microsoft.Authorization/roleDefinitions" - ], - "x-ms-enum": { - "name": "RoleDefinitionType", - "modelAsString": true - } - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/RoleDefinitionProperties", - "description": "Role definition properties." - } - }, - "description": "Role definition." - }, - "RoleDefinitionListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleDefinition" - }, - "description": "Role definition list." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "Role definition list operation result." - }, - "RoleScope": { - "type": "string", - "description": "The role scope.", - "enum": [ - "/", - "/keys" - ], - "x-ms-enum": { - "name": "RoleScope", - "modelAsString": true, - "values": [ - { - "name": "Global", - "value": "/", - "description": "Global scope" - }, - { - "name": "Keys", - "value": "/keys", - "description": "Keys scope" - } - ] - } - }, "DataAction": { "type": "string", "description": "Supported permissions for data actions.", @@ -918,6 +645,352 @@ } ] } + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" + } + }, + "x-nullable": true + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } + }, + "Permission": { + "type": "object", + "description": "Role definition permissions.", + "properties": { + "actions": { + "type": "array", + "description": "Action permissions that are granted.", + "items": { + "type": "string" + } + }, + "notActions": { + "type": "array", + "description": "Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", + "items": { + "type": "string" + } + }, + "dataActions": { + "type": "array", + "description": "Data action permissions that are granted.", + "items": { + "$ref": "#/definitions/DataAction" + } + }, + "notDataActions": { + "type": "array", + "description": "Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", + "items": { + "$ref": "#/definitions/DataAction" + } + } + } + }, + "RoleAssignment": { + "type": "object", + "description": "Role Assignments", + "properties": { + "id": { + "type": "string", + "description": "The role assignment ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The role assignment name.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The role assignment type.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/RoleAssignmentPropertiesWithScope", + "description": "Role assignment properties." + } + } + }, + "RoleAssignmentCreateParameters": { + "type": "object", + "description": "Role assignment create parameters.", + "properties": { + "properties": { + "$ref": "#/definitions/RoleAssignmentProperties", + "description": "Role assignment properties." + } + }, + "required": [ + "properties" + ] + }, + "RoleAssignmentFilter": { + "type": "object", + "description": "Role Assignments filter", + "properties": { + "principalId": { + "type": "string", + "description": "Returns role assignment of the specific principal." + } + } + }, + "RoleAssignmentListResult": { + "type": "object", + "description": "Role assignment list operation result.", + "properties": { + "value": { + "type": "array", + "description": "Role assignment list.", + "items": { + "$ref": "#/definitions/RoleAssignment" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + } + }, + "RoleAssignmentProperties": { + "type": "object", + "description": "Role assignment properties.", + "properties": { + "roleDefinitionId": { + "type": "string", + "description": "The role definition ID used in the role assignment." + }, + "principalId": { + "type": "string", + "description": "The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group." + } + }, + "required": [ + "roleDefinitionId", + "principalId" + ] + }, + "RoleAssignmentPropertiesWithScope": { + "type": "object", + "description": "Role assignment properties with scope.", + "properties": { + "scope": { + "$ref": "#/definitions/RoleScope", + "description": "The role scope." + }, + "roleDefinitionId": { + "type": "string", + "description": "The role definition ID." + }, + "principalId": { + "type": "string", + "description": "The principal ID." + } + } + }, + "RoleDefinition": { + "type": "object", + "description": "Role definition.", + "properties": { + "id": { + "type": "string", + "description": "The role definition ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The role definition name.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/RoleDefinitionType", + "description": "The role definition type.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/RoleDefinitionProperties", + "description": "Role definition properties.", + "x-ms-client-flatten": true + } + } + }, + "RoleDefinitionCreateParameters": { + "type": "object", + "description": "Role definition create parameters.", + "properties": { + "properties": { + "$ref": "#/definitions/RoleDefinitionProperties", + "description": "Role definition properties." + } + }, + "required": [ + "properties" + ] + }, + "RoleDefinitionFilter": { + "type": "object", + "description": "Role Definitions filter", + "properties": { + "roleName": { + "type": "string", + "description": "Returns role definition with the specific name." + } + } + }, + "RoleDefinitionListResult": { + "type": "object", + "description": "Role definition list operation result.", + "properties": { + "value": { + "type": "array", + "description": "Role definition list.", + "items": { + "$ref": "#/definitions/RoleDefinition" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + } + }, + "RoleDefinitionProperties": { + "type": "object", + "description": "Role definition properties.", + "properties": { + "roleName": { + "type": "string", + "description": "The role name." + }, + "description": { + "type": "string", + "description": "The role definition description." + }, + "type": { + "$ref": "#/definitions/RoleType", + "description": "The role type.", + "x-ms-client-name": "roleType" + }, + "permissions": { + "type": "array", + "description": "Role definition permissions.", + "items": { + "$ref": "#/definitions/Permission" + }, + "x-ms-identifiers": [] + }, + "assignableScopes": { + "type": "array", + "description": "Role definition assignable scopes.", + "items": { + "$ref": "#/definitions/RoleScope" + } + } + } + }, + "RoleDefinitionType": { + "type": "string", + "description": "The role definition type.", + "enum": [ + "Microsoft.Authorization/roleDefinitions" + ], + "x-ms-enum": { + "name": "RoleDefinitionType", + "modelAsString": true, + "values": [ + { + "name": "Microsoft.Authorization/roleDefinitions", + "value": "Microsoft.Authorization/roleDefinitions", + "description": "Microsoft-defined role definitions." + } + ] + } + }, + "RoleScope": { + "type": "string", + "description": "The role scope.", + "enum": [ + "/", + "/keys" + ], + "x-ms-enum": { + "name": "RoleScope", + "modelAsString": true, + "values": [ + { + "name": "Global", + "value": "/", + "description": "Global scope" + }, + { + "name": "Keys", + "value": "/keys", + "description": "Keys scope" + } + ] + } + }, + "RoleType": { + "type": "string", + "description": "The role type.", + "enum": [ + "AKVBuiltInRole", + "CustomRole" + ], + "x-ms-enum": { + "name": "RoleType", + "modelAsString": true, + "values": [ + { + "name": "BuiltInRole", + "value": "AKVBuiltInRole", + "description": "Built in role." + }, + { + "name": "CustomRole", + "value": "CustomRole", + "description": "Custom role." + } + ] + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/settings.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/settings.json index b21ca113df9c..cbd70bba3c94 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/settings.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/settings.json @@ -2,163 +2,201 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.6-preview.1", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.6-preview.1" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/settings/{setting-name}": { - "patch": { - "tags": [ - "Settings" - ], - "operationId": "UpdateSetting", - "summary": "Updates key vault account setting, stores it, then returns the setting name and value to the client.", - "description": "Description of the pool setting to be updated", + "/settings": { + "get": { + "operationId": "GetSettings", + "summary": "List account settings.", + "description": "Retrieves a list of all the available account settings that can be configured.", "parameters": [ { - "$ref": "#/parameters/SettingNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/UpdateSettingRequest" - }, - "description": "The parameters to update an account setting." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "An account setting containing the name of the setting and the value it is set to. ", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Setting" + "$ref": "#/definitions/SettingsListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Update Setting": { - "$ref": "./examples/UpdateSetting-example.json" + "List account settings": { + "$ref": "./examples/ListSettings-example.json" } } - }, + } + }, + "/settings/{setting-name}": { "get": { - "tags": [ - "Settings" - ], "operationId": "GetSetting", "summary": "Get specified account setting object.", "description": "Retrieves the setting object of a specified setting name.", "parameters": [ { - "$ref": "#/parameters/SettingNameParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/SettingNameParameter" } ], "responses": { "200": { - "description": "An account setting containing the name of the setting and the value it is set to.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Setting" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSetting": { - "$ref": "./examples/UpdateSetting-example.json" + "Get key vault account setting": { + "$ref": "./examples/GetSetting-example.json" } } - } - }, - "/settings": { - "get": { - "tags": [ - "Settings" - ], - "operationId": "GetSettings", - "summary": "List account settings.", - "description": "Retrieves a list of all the available account settings that can be configured.", + }, + "patch": { + "operationId": "UpdateSetting", + "summary": "Updates key vault account setting, stores it, then returns the setting name and value to the client.", + "description": "Description of the pool setting to be updated", "parameters": [ { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/SettingNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to update an account setting.", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateSettingRequest" + }, + "x-ms-client-flatten": true } ], "responses": { "200": { - "description": "A response message containing a list of account settings with their associated value.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SettingsListResult" + "$ref": "#/definitions/Setting" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSettings": { - "$ref": "./examples/ListSettings-example.json" + "Update key vault account setting": { + "$ref": "./examples/UpdateSetting-example.json" } } } } }, "definitions": { - "UpdateSettingRequest": { + "Error": { + "type": "object", "properties": { - "value": { + "code": { "type": "string", - "description": "The value of the pool setting." + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "description": "The update settings request object.", - "required": [ - "value" - ], - "type": "object" + "x-nullable": true + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } }, "Setting": { + "type": "object", + "description": "A Key Vault account setting.", "properties": { "name": { "type": "string", @@ -169,45 +207,79 @@ "description": "The value of the pool setting." }, "type": { - "enum": [ - "boolean" - ], - "type": "string", - "x-ms-enum": { - "name": "SettingTypeEnum", - "modelAsString": true - }, + "$ref": "#/definitions/SettingTypeEnum", "description": "The type specifier of the value." } }, "required": [ "name", "value" + ] + }, + "SettingTypeEnum": { + "type": "string", + "description": "The type specifier of the value.", + "enum": [ + "boolean" ], - "type": "object" + "x-ms-enum": { + "name": "SettingTypeEnum", + "modelAsString": true, + "values": [ + { + "name": "boolean", + "value": "boolean", + "description": "A boolean setting value." + } + ] + } }, "SettingsListResult": { + "type": "object", + "description": "The settings list result.", "properties": { "settings": { "type": "array", + "description": "A response message containing a list of account settings with their associated value.", "items": { "$ref": "#/definitions/Setting" }, "readOnly": true, - "description": "A response message containing a list of account settings with their associated value." + "x-ms-identifiers": [] + } + } + }, + "UpdateSettingRequest": { + "type": "object", + "description": "The update settings request object.", + "properties": { + "value": { + "type": "string", + "description": "The value of the pool setting." } }, - "description": "The settings list result.", - "type": "object" + "required": [ + "value" + ] } }, "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" + }, "SettingNameParameter": { "name": "setting-name", "in": "path", + "description": "The name of the account setting. Must be a valid settings option.", "required": true, "type": "string", - "description": "The name of the account setting. Must be a valid settings option.", "x-ms-parameter-location": "method" } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/backuprestore.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/backuprestore.json index a5571ccb976d..64f0b6b73025 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/backuprestore.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/backuprestore.json @@ -2,319 +2,452 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.5", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.5" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { "/backup": { "post": { - "tags": [ - "FullBackup" - ], "operationId": "FullBackup", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, "description": "Creates a full backup using a user-provided SAS token to an Azure blob storage container.", "parameters": [ { - "in": "body", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { "name": "azureStorageBlobContainerUri", + "in": "body", + "description": "Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call.", + "required": true, "schema": { "$ref": "#/definitions/SASTokenParameter" - }, - "description": "Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "202": { - "description": "Started full backup", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/FullBackupOperation" + }, "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/FullBackupOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Create full backup": { + "Create a full backup": { "$ref": "./examples/FullBackup-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/backup/{jobId}/pending": { "get": { - "tags": [ - "FullBackup" - ], "operationId": "FullBackupStatus", "description": "Returns the status of full backup operation", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "jobId", "in": "path", + "description": "The id returned as part of the backup request", "required": true, - "type": "string", - "description": "The id returned as part of the backup request" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns the full backup status", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/FullBackupOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Full backup status": { + "Get the status of a full backup operation": { "$ref": "./examples/FullBackup-pending-example.json" } } } }, - "/restore": { + "/keys/{keyName}/restore": { "put": { - "tags": [ - "FullRestore" + "operationId": "SelectiveKeyRestoreOperation", + "description": "Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "keyName", + "in": "path", + "description": "The name of the key to be restored from the user supplied backup", + "required": true, + "type": "string" + }, + { + "name": "restoreBlobDetails", + "in": "body", + "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored", + "required": true, + "schema": { + "$ref": "#/definitions/SelectiveKeyRestoreOperationParameters" + } + } ], - "operationId": "FullRestoreOperation", - "x-ms-long-running-operation": true, + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/SelectiveKeyRestoreOperation" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "Restores all key versions of a given key": { + "$ref": "./examples/SelectiveRestore-example.json" + } + }, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" }, + "x-ms-long-running-operation": true + } + }, + "/restore": { + "put": { + "operationId": "FullRestoreOperation", "description": "Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage backup folder", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "restoreBlobDetails", "in": "body", + "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored.", + "required": true, "schema": { "$ref": "#/definitions/RestoreOperationParameters" - }, - "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "202": { - "description": "Started restore operation from the previously stored backup", + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/RestoreOperation" + }, "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" + "type": "string", + "description": "The URI to poll for completion status." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation." } - }, - "schema": { - "$ref": "#/definitions/RestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Create full restore from backup": { + "Restore all key materials from a previously stored Azure Blob Storage backup": { "$ref": "./examples/FullRestore-example.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/restore/{jobId}/pending": { "get": { - "tags": [ - "FullRestore" - ], "operationId": "RestoreStatus", "description": "Returns the status of restore operation", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "jobId", "in": "path", + "description": "The Job Id returned part of the restore operation", "required": true, - "type": "string", - "description": "The Job Id returned part of the restore operation" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns the full restore status", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/RestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Restore status": { + "Get the status of restore operation": { "$ref": "./examples/Restore-pending-example.json" } } } - }, - "/keys/{keyName}/restore": { - "put": { - "tags": [ - "Keys" - ], - "operationId": "SelectiveKeyRestoreOperation", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "description": "Restores all key versions of a given key using user supplied SAS token pointing to a previously stored Azure Blob storage backup folder", + } + }, + "x-ms-paths": { + "/restore/{jobId}/pending?_overload=selectiveKeyRestoreStatus": { + "get": { + "operationId": "SelectiveKeyRestoreStatus", + "description": "Returns the status of the selective key restore operation", "parameters": [ { - "name": "keyName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the key to be restored from the user supplied backup" - }, - { - "name": "restoreBlobDetails", - "in": "body", - "schema": { - "$ref": "#/definitions/SelectiveKeyRestoreOperationParameters" - }, - "description": "The Azure blob SAS token pointing to a folder where the previous successful full backup was stored" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "jobId", + "in": "path", + "description": "The Job Id returned part of the restore operation", + "required": true, + "type": "string" } ], "responses": { - "202": { - "description": "Started selective key restore operation from the previously stored backup", - "headers": { - "Retry-After": { - "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", - "type": "integer" - }, - "Azure-AsyncOperation": { - "description": "The URI to poll for completion status.", - "type": "string" - } - }, + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SelectiveKeyRestoreOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Selectively restore key from a backup": { - "$ref": "./examples/SelectiveRestore-example.json" + "Get the status of a selective restore operation": { + "$ref": "./examples/SelectiveRestore-pending-example.json" } } } } }, "definitions": { - "RestoreOperationParameters": { + "Error": { + "type": "object", "properties": { - "sasTokenParameters": { - "$ref": "#/definitions/SASTokenParameter" + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true }, - "folderToRestore": { + "message": { "type": "string", - "description": "The Folder name of the blob where the previous successful full backup was stored" + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "required": [ - "folderToRestore", - "sasTokenParameters" - ] + "x-nullable": true }, - "SelectiveKeyRestoreOperationParameters": { + "FullBackupOperation": { + "type": "object", + "description": "Full backup operation", "properties": { - "sasTokenParameters": { - "$ref": "#/definitions/SASTokenParameter" + "status": { + "$ref": "#/definitions/OperationStatus", + "description": "Status of the backup operation." }, - "folder": { + "statusDetails": { "type": "string", - "description": "The Folder name of the blob where the previous successful full backup was stored" + "description": "The status details of backup operation." + }, + "error": { + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the full backup operation." + }, + "startTime": { + "type": "integer", + "format": "unixtime", + "description": "The start time of the backup operation in UTC" + }, + "endTime": { + "type": "integer", + "format": "unixtime", + "description": "The end time of the backup operation in UTC", + "x-nullable": true + }, + "jobId": { + "type": "string", + "description": "Identifier for the full backup operation." + }, + "azureStorageBlobContainerUri": { + "type": "string", + "description": "The Azure blob storage container Uri which contains the full backup" } - }, - "required": [ - "folder", - "sasTokenParameters" - ] + } }, - "SelectiveKeyRestoreOperation": { + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } + }, + "OperationStatus": { + "type": "string", + "description": "The status of a long-running operation.", + "enum": [ + "InProgress", + "Succeeded", + "Canceled", + "Failed" + ], + "x-ms-enum": { + "name": "OperationStatus", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is in progress." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation successfully completed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed." + } + ] + } + }, + "RestoreOperation": { + "type": "object", + "description": "Restore operation", "properties": { "status": { - "type": "string", + "$ref": "#/definitions/OperationStatus", "description": "Status of the restore operation." }, "statusDetails": { @@ -322,12 +455,12 @@ "description": "The status details of restore operation." }, "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the selective key restore operation." + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the restore operation." }, "jobId": { "type": "string", - "description": "Identifier for the selective key restore operation." + "description": "Identifier for the restore operation." }, "startTime": { "type": "integer", @@ -340,10 +473,29 @@ "description": "The end time of the restore operation", "x-nullable": true } + } + }, + "RestoreOperationParameters": { + "type": "object", + "description": "The authentication method and location for the restore operation.", + "properties": { + "sasTokenParameters": { + "$ref": "#/definitions/SASTokenParameter", + "description": "A user-provided SAS token to an Azure blob storage container." + }, + "folderToRestore": { + "type": "string", + "description": "The Folder name of the blob where the previous successful full backup was stored" + } }, - "description": "Selective Key Restore operation" + "required": [ + "sasTokenParameters", + "folderToRestore" + ] }, "SASTokenParameter": { + "type": "object", + "description": "An authentication method and location for the operation.", "properties": { "storageResourceUri": { "type": "string", @@ -355,54 +507,20 @@ }, "useManagedIdentity": { "type": "boolean", - "default": false, - "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified." + "description": "Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified.", + "default": false } }, "required": [ "storageResourceUri" ] }, - "FullBackupOperation": { - "properties": { - "status": { - "type": "string", - "description": "Status of the backup operation." - }, - "statusDetails": { - "type": "string", - "description": "The status details of backup operation." - }, - "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the full backup operation." - }, - "startTime": { - "type": "integer", - "format": "unixtime", - "description": "The start time of the backup operation in UTC" - }, - "endTime": { - "type": "integer", - "format": "unixtime", - "description": "The end time of the backup operation in UTC", - "x-nullable": true - }, - "jobId": { - "type": "string", - "description": "Identifier for the full backup operation." - }, - "azureStorageBlobContainerUri": { - "type": "string", - "description": "The Azure blob storage container Uri which contains the full backup" - } - }, - "description": "Full backup operation" - }, - "RestoreOperation": { + "SelectiveKeyRestoreOperation": { + "type": "object", + "description": "Selective Key Restore operation", "properties": { "status": { - "type": "string", + "$ref": "#/definitions/OperationStatus", "description": "Status of the restore operation." }, "statusDetails": { @@ -410,12 +528,12 @@ "description": "The status details of restore operation." }, "error": { - "$ref": "common.json#/definitions/Error", - "description": "Error encountered, if any, during the restore operation." + "$ref": "#/definitions/Error", + "description": "Error encountered, if any, during the selective key restore operation." }, "jobId": { "type": "string", - "description": "Identifier for the restore operation." + "description": "Identifier for the selective key restore operation." }, "startTime": { "type": "integer", @@ -428,8 +546,37 @@ "description": "The end time of the restore operation", "x-nullable": true } + } + }, + "SelectiveKeyRestoreOperationParameters": { + "type": "object", + "description": "The authentication method and location for the selective key restore operation.", + "properties": { + "sasTokenParameters": { + "$ref": "#/definitions/SASTokenParameter", + "description": "A user-provided SAS token to an Azure blob storage container." + }, + "folder": { + "type": "string", + "description": "The Folder name of the blob where the previous successful full backup was stored" + } }, - "description": "Restore operation" + "required": [ + "sasTokenParameters", + "folder" + ] + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleAssignments-example.json index e34304c2cb19..a062af516544 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Delete", + "title": "Delete a role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleDefinition-example.json index 6969cb838172..0bc163918526 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_Delete", + "title": "Delete a custom role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "/", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-example.json index 6d5544bb350c..5b6716be6d5d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullBackup", + "title": "Create a full backup", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "azureStorageBlobContainerUri": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-pending-example.json index 870dd578dca7..c8c0da456a80 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-pending-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullBackup-pending-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullBackupStatus", + "title": "Get the status of a full backup operation", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "jobId": "45aacd568ab049a2803861e8dd3ae21f", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullRestore-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullRestore-example.json index ae98fe964aa1..0bd401972650 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullRestore-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/FullRestore-example.json @@ -1,4 +1,6 @@ { + "operationId": "FullRestoreOperation", + "title": "Restore all key materials from a previously stored Azure Blob Storage backup", "parameters": { "vaultBaseUrl": "https://myhsm.managedhsm.azure.net", "restoreBlobDetails": { diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleAssignments-example.json index e34304c2cb19..7f5c66a18998 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Get", + "title": "Get the specified role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleDefinition-example.json index 19e0b0f72864..d01365df2295 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_Get", + "title": "Get the specified role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "/", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSetting-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSetting-example.json new file mode 100644 index 000000000000..a2f7f06ce0b0 --- /dev/null +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSetting-example.json @@ -0,0 +1,21 @@ +{ + "operationId": "GetSetting", + "title": "Get key vault account setting", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "setting-name": "AllowKeyManagementOperationsThroughARM", + "api-version": "7.5", + "parameters": { + "value": "true" + } + }, + "responses": { + "200": { + "body": { + "name": "AllowKeyManagementOperationsThroughARM", + "value": "true", + "type": "boolean" + } + } + } +} diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleAssignments-example.json index 75cd0f67680c..fa5ca73d36d6 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_ListForScope", + "title": "Get role assignments for a scope", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleDefinitions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleDefinitions-example.json index 6f6b4afb0c93..3f680e2602fe 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleDefinitions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListRoleDefinitions-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_List", + "title": "Get all role definitions that are applicable at scope and above", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListSettings-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListSettings-example.json index 003445914dc1..4efac371aa13 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListSettings-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ListSettings-example.json @@ -1,4 +1,6 @@ { + "operationId": "GetSettings", + "title": "List account settings", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "api-version": "7.5" diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleAssignments-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleAssignments-example.json index a49bf6ce0e3b..7b8ad8d357a7 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleAssignments-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleAssignments-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleAssignments_Create", + "title": "Create a role assignment", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleDefinition-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleDefinition-example.json index e62eddc37a8b..62aa3e6ab7f7 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleDefinition-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PutRoleDefinition-example.json @@ -1,4 +1,6 @@ { + "operationId": "RoleDefinitions_CreateOrUpdate", + "title": "Create or update a custom role definition", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "scope": "keys", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/Restore-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/Restore-pending-example.json index 708c9a50adf2..6454089dfa30 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/Restore-pending-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/Restore-pending-example.json @@ -1,4 +1,6 @@ { + "operationId": "RestoreStatus", + "title": "Get the status of restore operation", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "jobId": "45aacd568ab049a2803861e8dd3ae21f", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-example.json index e08c8af5b81b..e57bd90e34fe 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-example.json @@ -1,4 +1,6 @@ { + "operationId": "SelectiveKeyRestoreOperation", + "title": "Restores all key versions of a given key", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net", "keyName": "hsm-mail-key", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-pending-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-pending-example.json new file mode 100644 index 000000000000..b614aab7a1e7 --- /dev/null +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SelectiveRestore-pending-example.json @@ -0,0 +1,20 @@ +{ + "operationId": "SelectiveKeyRestoreStatus", + "title": "Get the status of a selective restore operation", + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "status": "InProgress", + "statusDetails": "Full restore is in progress", + "jobId": "45aacd568ab049a2803861e8dd3ae21f", + "startTime": 1490790000, + "endTime": 0 + } + } + } +} diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSetting-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSetting-example.json index 6a16042dae77..57f6dd843061 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSetting-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSetting-example.json @@ -1,4 +1,6 @@ { + "operationId": "UpdateSetting", + "title": "Update key vault account setting", "parameters": { "vaultBaseUrl": "https://myvault.vault.azure.net/", "setting-name": "AllowKeyManagementOperationsThroughARM", diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/rbac.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/rbac.json index 52c30a549f3f..7128666971aa 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/rbac.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/rbac.json @@ -2,707 +2,434 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.5", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.5" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}": { - "delete": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_Delete", - "description": "Deletes a custom role definition.", + "/{scope}/providers/Microsoft.Authorization/roleAssignments": { + "get": { + "operationId": "RoleAssignments_ListForScope", + "description": "Gets role assignments for a scope.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignments.", "required": true, "type": "string", - "description": "The scope of the role definition to delete. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RoleAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "Get role assignments for a scope": { + "$ref": "./examples/ListRoleAssignments-example.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}": { + "get": { + "operationId": "RoleAssignments_Get", + "description": "Get the specified role assignment.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "scope", "in": "path", + "description": "The scope of the role assignment.", "required": true, "type": "string", - "description": "The name (GUID) of the role definition to delete." + "x-ms-skip-url-encoding": true }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "roleAssignmentName", + "in": "path", + "description": "The name of the role assignment to get.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role definition that was deleted.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteRoleDefinition": { - "$ref": "./examples/DeleteRoleDefinition-example.json" + "Get the specified role assignment": { + "$ref": "./examples/GetRoleAssignments-example.json" } } }, "put": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_CreateOrUpdate", - "description": "Creates or updates a custom role definition.", + "operationId": "RoleAssignments_Create", + "description": "Creates a role assignment.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignment to create.", "required": true, "type": "string", - "description": "The scope of the role definition to create or update. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "roleAssignmentName", "in": "path", + "description": "The name of the role assignment to create. It can be any valid GUID.", "required": true, - "type": "string", - "description": "The name of the role definition to create or update. It can be any valid GUID." + "type": "string" }, { "name": "parameters", "in": "body", + "description": "Parameters for the role assignment.", "required": true, "schema": { - "$ref": "#/definitions/RoleDefinitionCreateParameters" - }, - "description": "Parameters for the role definition." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/RoleAssignmentCreateParameters" + } } ], "responses": { "201": { - "description": "Created - Returns information about the role definition.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PutRoleDefinition": { - "$ref": "./examples/PutRoleDefinition-example.json" + "Create a role assignment": { + "$ref": "./examples/PutRoleAssignments-example.json" } } }, - "get": { - "tags": [ - "RoleDefinitions" - ], - "operationId": "RoleDefinitions_Get", - "description": "Get the specified role definition.", + "delete": { + "operationId": "RoleAssignments_Delete", + "description": "Deletes a role assignment.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role assignment to delete.", "required": true, "type": "string", - "description": "The scope of the role definition to get. Managed HSM only supports '/'.", "x-ms-skip-url-encoding": true }, { - "name": "roleDefinitionName", + "name": "roleAssignmentName", "in": "path", + "description": "The name of the role assignment to delete.", "required": true, - "type": "string", - "description": "The name of the role definition to get." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role definition.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleDefinition" + "$ref": "#/definitions/RoleAssignment" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetRoleAssignments": { - "$ref": "./examples/GetRoleDefinition-example.json" + "Delete a role assignment": { + "$ref": "./examples/DeleteRoleAssignments-example.json" } } } }, "/{scope}/providers/Microsoft.Authorization/roleDefinitions": { "get": { - "tags": [ - "RoleDefinitions" - ], "operationId": "RoleDefinitions_List", "description": "Get all role definitions that are applicable at scope and above.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition.", "required": true, "type": "string", - "description": "The scope of the role definition.", "x-ms-skip-url-encoding": true }, { "name": "$filter", "in": "query", + "description": "The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well.", "required": false, - "type": "string", - "description": "The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns an array of role definitions.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/RoleDefinitionListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "ListRoleDefinitions": { + "Get all role definitions that are applicable at scope and above": { "$ref": "./examples/ListRoleDefinitions-example.json" } }, - "x-ms-odata": "#/definitions/RoleDefinitionFilter" + "x-ms-pageable": { + "nextLinkName": "nextLink" + } } }, - "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}": { - "delete": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Delete", - "description": "Deletes a role assignment.", + "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}": { + "get": { + "operationId": "RoleDefinitions_Get", + "description": "Get the specified role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to get. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment to delete.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name of the role definition to get.", "required": true, - "type": "string", - "description": "The name of the role assignment to delete." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role assignment.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteRoleAssignments": { - "$ref": "./examples/DeleteRoleAssignments-example.json" + "Get the specified role definition": { + "$ref": "./examples/GetRoleDefinition-example.json" } } }, "put": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Create", - "description": "Creates a role assignment.", + "operationId": "RoleDefinitions_CreateOrUpdate", + "description": "Creates or updates a custom role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to create or update. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment to create.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name of the role definition to create or update. It can be any valid GUID.", "required": true, - "type": "string", - "description": "The name of the role assignment to create. It can be any valid GUID." + "type": "string" }, { "name": "parameters", "in": "body", + "description": "Parameters for the role definition.", "required": true, "schema": { - "$ref": "#/definitions/RoleAssignmentCreateParameters" - }, - "description": "Parameters for the role assignment." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/RoleDefinitionCreateParameters" + } } ], "responses": { "201": { - "description": "Created - Returns information about the role assignment.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PutRoleAssignments": { - "$ref": "./examples/PutRoleAssignments-example.json" + "Create or update a custom role definition": { + "$ref": "./examples/PutRoleDefinition-example.json" } } }, - "get": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_Get", - "description": "Get the specified role assignment.", + "delete": { + "operationId": "RoleDefinitions_Delete", + "description": "Deletes a custom role definition.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "scope", "in": "path", + "description": "The scope of the role definition to delete. Managed HSM only supports '/'.", "required": true, "type": "string", - "description": "The scope of the role assignment.", "x-ms-skip-url-encoding": true }, { - "name": "roleAssignmentName", + "name": "roleDefinitionName", "in": "path", + "description": "The name (GUID) of the role definition to delete.", "required": true, - "type": "string", - "description": "The name of the role assignment to get." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "string" } ], "responses": { "200": { - "description": "OK - Returns information about the role assignment.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/RoleAssignment" + "$ref": "#/definitions/RoleDefinition" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetRoleAssignments": { - "$ref": "./examples/GetRoleAssignments-example.json" + "Delete a custom role definition": { + "$ref": "./examples/DeleteRoleDefinition-example.json" } } } - }, - "/{scope}/providers/Microsoft.Authorization/roleAssignments": { - "get": { - "tags": [ - "RoleAssignments" - ], - "operationId": "RoleAssignments_ListForScope", - "description": "Gets role assignments for a scope.", - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the role assignments.", - "x-ms-skip-url-encoding": true - }, - { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of role assignments.", - "schema": { - "$ref": "#/definitions/RoleAssignmentListResult" - } - }, - "default": { - "description": "Key Vault error response describing why the operation failed.", - "schema": { - "$ref": "common.json#/definitions/KeyVaultError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "x-ms-examples": { - "ListRoleAssignments": { - "$ref": "./examples/ListRoleAssignments-example.json" - } - }, - "x-ms-odata": "#/definitions/RoleAssignmentFilter" - } } }, "definitions": { - "RoleAssignmentFilter": { - "properties": { - "principalId": { - "type": "string", - "description": "Returns role assignment of the specific principal." - } - }, - "description": "Role Assignments filter" - }, - "RoleAssignmentPropertiesWithScope": { - "properties": { - "scope": { - "$ref": "#/definitions/RoleScope" - }, - "roleDefinitionId": { - "type": "string", - "description": "The role definition ID." - }, - "principalId": { - "type": "string", - "description": "The principal ID." - } - }, - "description": "Role assignment properties with scope." - }, - "RoleAssignment": { - "properties": { - "id": { - "type": "string", - "readOnly": true, - "description": "The role assignment ID." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The role assignment name." - }, - "type": { - "type": "string", - "readOnly": true, - "description": "The role assignment type." - }, - "properties": { - "$ref": "#/definitions/RoleAssignmentPropertiesWithScope", - "description": "Role assignment properties." - } - }, - "description": "Role Assignments" - }, - "RoleAssignmentListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleAssignment" - }, - "description": "Role assignment list." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "Role assignment list operation result." - }, - "RoleAssignmentProperties": { - "properties": { - "roleDefinitionId": { - "type": "string", - "description": "The role definition ID used in the role assignment." - }, - "principalId": { - "type": "string", - "description": "The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group." - } - }, - "required": [ - "roleDefinitionId", - "principalId" - ], - "description": "Role assignment properties." - }, - "RoleDefinitionCreateParameters": { - "properties": { - "properties": { - "$ref": "#/definitions/RoleDefinitionProperties", - "description": "Role definition properties." - } - }, - "required": [ - "properties" - ], - "description": "Role definition create parameters." - }, - "RoleAssignmentCreateParameters": { - "properties": { - "properties": { - "$ref": "#/definitions/RoleAssignmentProperties", - "description": "Role assignment properties." - } - }, - "required": [ - "properties" - ], - "description": "Role assignment create parameters." - }, - "RoleDefinitionFilter": { - "properties": { - "roleName": { - "type": "string", - "description": "Returns role definition with the specific name." - } - }, - "description": "Role Definitions filter" - }, - "Permission": { - "properties": { - "actions": { - "type": "array", - "description": "Action permissions that are granted.", - "items": { - "type": "string" - } - }, - "notActions": { - "type": "array", - "description": "Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", - "items": { - "type": "string", - "description": "Not actions." - } - }, - "dataActions": { - "type": "array", - "description": "Data action permissions that are granted.", - "items": { - "$ref": "#/definitions/DataAction" - } - }, - "notDataActions": { - "type": "array", - "description": "Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", - "items": { - "$ref": "#/definitions/DataAction" - } - } - }, - "description": "Role definition permissions." - }, - "RoleDefinitionProperties": { - "properties": { - "roleName": { - "type": "string", - "description": "The role name." - }, - "description": { - "type": "string", - "description": "The role definition description." - }, - "type": { - "type": "string", - "description": "The role type.", - "enum": [ - "AKVBuiltInRole", - "CustomRole" - ], - "x-ms-enum": { - "name": "RoleType", - "modelAsString": true, - "values": [ - { - "name": "BuiltInRole", - "value": "AKVBuiltInRole", - "description": "Built in role." - }, - { - "value": "CustomRole", - "description": "Custom role." - } - ] - }, - "x-ms-client-name": "roleType" - }, - "permissions": { - "type": "array", - "items": { - "$ref": "#/definitions/Permission" - }, - "description": "Role definition permissions." - }, - "assignableScopes": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleScope" - }, - "description": "Role definition assignable scopes." - } - }, - "description": "Role definition properties." - }, - "RoleDefinition": { - "properties": { - "id": { - "type": "string", - "readOnly": true, - "description": "The role definition ID." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The role definition name." - }, - "type": { - "type": "string", - "description": "The role definition type.", - "readOnly": true, - "enum": [ - "Microsoft.Authorization/roleDefinitions" - ], - "x-ms-enum": { - "name": "RoleDefinitionType", - "modelAsString": true - } - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/RoleDefinitionProperties", - "description": "Role definition properties." - } - }, - "description": "Role definition." - }, - "RoleDefinitionListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/RoleDefinition" - }, - "description": "Role definition list." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "Role definition list operation result." - }, - "RoleScope": { - "type": "string", - "description": "The role scope.", - "enum": [ - "/", - "/keys" - ], - "x-ms-enum": { - "name": "RoleScope", - "modelAsString": true, - "values": [ - { - "name": "Global", - "value": "/", - "description": "Global scope" - }, - { - "name": "Keys", - "value": "/keys", - "description": "Keys scope" - } - ] - } - }, "DataAction": { "type": "string", "description": "Supported permissions for data actions.", @@ -918,6 +645,352 @@ } ] } + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" + } + }, + "x-nullable": true + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } + }, + "Permission": { + "type": "object", + "description": "Role definition permissions.", + "properties": { + "actions": { + "type": "array", + "description": "Action permissions that are granted.", + "items": { + "type": "string" + } + }, + "notActions": { + "type": "array", + "description": "Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", + "items": { + "type": "string" + } + }, + "dataActions": { + "type": "array", + "description": "Data action permissions that are granted.", + "items": { + "$ref": "#/definitions/DataAction" + } + }, + "notDataActions": { + "type": "array", + "description": "Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal.", + "items": { + "$ref": "#/definitions/DataAction" + } + } + } + }, + "RoleAssignment": { + "type": "object", + "description": "Role Assignments", + "properties": { + "id": { + "type": "string", + "description": "The role assignment ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The role assignment name.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The role assignment type.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/RoleAssignmentPropertiesWithScope", + "description": "Role assignment properties." + } + } + }, + "RoleAssignmentCreateParameters": { + "type": "object", + "description": "Role assignment create parameters.", + "properties": { + "properties": { + "$ref": "#/definitions/RoleAssignmentProperties", + "description": "Role assignment properties." + } + }, + "required": [ + "properties" + ] + }, + "RoleAssignmentFilter": { + "type": "object", + "description": "Role Assignments filter", + "properties": { + "principalId": { + "type": "string", + "description": "Returns role assignment of the specific principal." + } + } + }, + "RoleAssignmentListResult": { + "type": "object", + "description": "Role assignment list operation result.", + "properties": { + "value": { + "type": "array", + "description": "Role assignment list.", + "items": { + "$ref": "#/definitions/RoleAssignment" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + } + }, + "RoleAssignmentProperties": { + "type": "object", + "description": "Role assignment properties.", + "properties": { + "roleDefinitionId": { + "type": "string", + "description": "The role definition ID used in the role assignment." + }, + "principalId": { + "type": "string", + "description": "The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group." + } + }, + "required": [ + "roleDefinitionId", + "principalId" + ] + }, + "RoleAssignmentPropertiesWithScope": { + "type": "object", + "description": "Role assignment properties with scope.", + "properties": { + "scope": { + "$ref": "#/definitions/RoleScope", + "description": "The role scope." + }, + "roleDefinitionId": { + "type": "string", + "description": "The role definition ID." + }, + "principalId": { + "type": "string", + "description": "The principal ID." + } + } + }, + "RoleDefinition": { + "type": "object", + "description": "Role definition.", + "properties": { + "id": { + "type": "string", + "description": "The role definition ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The role definition name.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/RoleDefinitionType", + "description": "The role definition type.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/RoleDefinitionProperties", + "description": "Role definition properties.", + "x-ms-client-flatten": true + } + } + }, + "RoleDefinitionCreateParameters": { + "type": "object", + "description": "Role definition create parameters.", + "properties": { + "properties": { + "$ref": "#/definitions/RoleDefinitionProperties", + "description": "Role definition properties." + } + }, + "required": [ + "properties" + ] + }, + "RoleDefinitionFilter": { + "type": "object", + "description": "Role Definitions filter", + "properties": { + "roleName": { + "type": "string", + "description": "Returns role definition with the specific name." + } + } + }, + "RoleDefinitionListResult": { + "type": "object", + "description": "Role definition list operation result.", + "properties": { + "value": { + "type": "array", + "description": "Role definition list.", + "items": { + "$ref": "#/definitions/RoleDefinition" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + } + }, + "RoleDefinitionProperties": { + "type": "object", + "description": "Role definition properties.", + "properties": { + "roleName": { + "type": "string", + "description": "The role name." + }, + "description": { + "type": "string", + "description": "The role definition description." + }, + "type": { + "$ref": "#/definitions/RoleType", + "description": "The role type.", + "x-ms-client-name": "roleType" + }, + "permissions": { + "type": "array", + "description": "Role definition permissions.", + "items": { + "$ref": "#/definitions/Permission" + }, + "x-ms-identifiers": [] + }, + "assignableScopes": { + "type": "array", + "description": "Role definition assignable scopes.", + "items": { + "$ref": "#/definitions/RoleScope" + } + } + } + }, + "RoleDefinitionType": { + "type": "string", + "description": "The role definition type.", + "enum": [ + "Microsoft.Authorization/roleDefinitions" + ], + "x-ms-enum": { + "name": "RoleDefinitionType", + "modelAsString": true, + "values": [ + { + "name": "Microsoft.Authorization/roleDefinitions", + "value": "Microsoft.Authorization/roleDefinitions", + "description": "Microsoft-defined role definitions." + } + ] + } + }, + "RoleScope": { + "type": "string", + "description": "The role scope.", + "enum": [ + "/", + "/keys" + ], + "x-ms-enum": { + "name": "RoleScope", + "modelAsString": true, + "values": [ + { + "name": "Global", + "value": "/", + "description": "Global scope" + }, + { + "name": "Keys", + "value": "/keys", + "description": "Keys scope" + } + ] + } + }, + "RoleType": { + "type": "string", + "description": "The role type.", + "enum": [ + "AKVBuiltInRole", + "CustomRole" + ], + "x-ms-enum": { + "name": "RoleType", + "modelAsString": true, + "values": [ + { + "name": "BuiltInRole", + "value": "AKVBuiltInRole", + "description": "Built in role." + }, + { + "name": "CustomRole", + "value": "CustomRole", + "description": "Custom role." + } + ] + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/settings.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/settings.json index 2fb03277deb7..c4afe27d6c62 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/settings.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/settings.json @@ -2,163 +2,201 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.5", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.5" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/settings/{setting-name}": { - "patch": { - "tags": [ - "Settings" - ], - "operationId": "UpdateSetting", - "summary": "Updates key vault account setting, stores it, then returns the setting name and value to the client.", - "description": "Description of the pool setting to be updated", + "/settings": { + "get": { + "operationId": "GetSettings", + "summary": "List account settings.", + "description": "Retrieves a list of all the available account settings that can be configured.", "parameters": [ { - "$ref": "#/parameters/SettingNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/UpdateSettingRequest" - }, - "description": "The parameters to update an account setting." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "An account setting containing the name of the setting and the value it is set to. ", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Setting" + "$ref": "#/definitions/SettingsListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "Update Setting": { - "$ref": "./examples/UpdateSetting-example.json" + "List account settings": { + "$ref": "./examples/ListSettings-example.json" } } - }, + } + }, + "/settings/{setting-name}": { "get": { - "tags": [ - "Settings" - ], "operationId": "GetSetting", "summary": "Get specified account setting object.", "description": "Retrieves the setting object of a specified setting name.", "parameters": [ { - "$ref": "#/parameters/SettingNameParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/SettingNameParameter" } ], "responses": { "200": { - "description": "An account setting containing the name of the setting and the value it is set to.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Setting" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSetting": { - "$ref": "./examples/UpdateSetting-example.json" + "Get key vault account setting": { + "$ref": "./examples/GetSetting-example.json" } } - } - }, - "/settings": { - "get": { - "tags": [ - "Settings" - ], - "operationId": "GetSettings", - "summary": "List account settings.", - "description": "Retrieves a list of all the available account settings that can be configured.", + }, + "patch": { + "operationId": "UpdateSetting", + "summary": "Updates key vault account setting, stores it, then returns the setting name and value to the client.", + "description": "Description of the pool setting to be updated", "parameters": [ { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/SettingNameParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to update an account setting.", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateSettingRequest" + }, + "x-ms-client-flatten": true } ], "responses": { "200": { - "description": "A response message containing a list of account settings with their associated value.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SettingsListResult" + "$ref": "#/definitions/Setting" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSettings": { - "$ref": "./examples/ListSettings-example.json" + "Update key vault account setting": { + "$ref": "./examples/UpdateSetting-example.json" } } } } }, "definitions": { - "UpdateSettingRequest": { + "Error": { + "type": "object", "properties": { - "value": { + "code": { "type": "string", - "description": "The value of the pool setting." + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "description": "The update settings request object.", - "required": [ - "value" - ], - "type": "object" + "x-nullable": true + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true + } + } }, "Setting": { + "type": "object", + "description": "A Key Vault account setting.", "properties": { "name": { "type": "string", @@ -169,45 +207,79 @@ "description": "The value of the pool setting." }, "type": { - "enum": [ - "boolean" - ], - "type": "string", - "x-ms-enum": { - "name": "SettingTypeEnum", - "modelAsString": true - }, + "$ref": "#/definitions/SettingTypeEnum", "description": "The type specifier of the value." } }, "required": [ "name", "value" + ] + }, + "SettingTypeEnum": { + "type": "string", + "description": "The type specifier of the value.", + "enum": [ + "boolean" ], - "type": "object" + "x-ms-enum": { + "name": "SettingTypeEnum", + "modelAsString": true, + "values": [ + { + "name": "boolean", + "value": "boolean", + "description": "A boolean setting value." + } + ] + } }, "SettingsListResult": { + "type": "object", + "description": "The settings list result.", "properties": { "settings": { "type": "array", + "description": "A response message containing a list of account settings with their associated value.", "items": { "$ref": "#/definitions/Setting" }, "readOnly": true, - "description": "A response message containing a list of account settings with their associated value." + "x-ms-identifiers": [] + } + } + }, + "UpdateSettingRequest": { + "type": "object", + "description": "The update settings request object.", + "properties": { + "value": { + "type": "string", + "description": "The value of the pool setting." } }, - "description": "The settings list result.", - "type": "object" + "required": [ + "value" + ] } }, "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" + }, "SettingNameParameter": { "name": "setting-name", "in": "path", + "description": "The name of the account setting. Must be a valid settings option.", "required": true, "type": "string", - "description": "The name of the account setting. Must be a valid settings option.", "x-ms-parameter-location": "method" } } From 0d99a633e43f1a504220563d0bf953f43e31db4a Mon Sep 17 00:00:00 2001 From: tejasm-microsoft <137446850+tejasm-microsoft@users.noreply.github.com> Date: Wed, 15 Jan 2025 19:20:42 -0500 Subject: [PATCH 32/82] Feature/2025 03 01 stable (#32062) * Copy files from preview/2024-12-18-preview Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to stable/2025-03-01 Updated the API version from preview/2024-12-18-preview to stable/2025-03-01. * Added tag for 2025-03-01 in readme file * Resolves prettier errors * add sdk-suppressins.yaml * adds group quota related words to suppression list in cSpell * change the case sensitivity of Suppressions * spelling mistake with the word "supressions" * fixes incorrect Ids in examples --------- Co-authored-by: Yuchao Yan --- cSpell.json | 7 + .../2025-03-01/examples/GetOperations.json | 157 ++ .../ListGroupQuotaLimits-Compute.json | 70 + .../GroupQuotaLimitsRequests_Get.json | 34 + .../GroupQuotaLimitsRequests_List.json | 62 + ...PatchGroupQuotaLimitsRequests-Compute.json | 97 + .../GroupQuotas/DeleteGroupQuotas.json | 19 + .../examples/GroupQuotas/GetGroupQuotas.json | 21 + .../GroupQuotas/GetGroupQuotasList.json | 25 + .../GroupQuotas/PatchGroupQuotas.json | 34 + .../examples/GroupQuotas/PutGroupQuotas.json | 42 + .../DeleteGroupQuotaSubscriptions.json | 20 + .../GetGroupQuotaSubscriptions.json | 22 + .../ListGroupQuotaSubscriptions.json | 35 + .../PatchGroupQuotasSubscription.json | 33 + .../PutGroupQuotasSubscription.json | 38 + ...scriptionQuotaAllocation_List-Compute.json | 49 + ...riptionQuotaAllocationRequest-Compute.json | 74 + ...onQuotaAllocationRequests_Get-Compute.json | 36 + ...nQuotaAllocationRequests_List-Compute.json | 40 + .../SubscriptionRequests_Get.json | 23 + .../SubscriptionRequests_List.json | 27 + .../examples/getComputeOneSkuQuotaLimit.json | 29 + .../examples/getComputeOneSkuUsages.json | 28 + .../examples/getComputeQuotaLimits.json | 219 ++ .../2025-03-01/examples/getComputeUsages.json | 207 ++ ...getMachineLearningServicesQuotaLimits.json | 48 + .../getMachineLearningServicesUsages.json | 46 + .../examples/getNetworkOneSkuQuotaLimit.json | 29 + .../examples/getNetworkOneSkuUsages.json | 28 + .../examples/getNetworkQuotaLimits.json | 699 ++++++ .../2025-03-01/examples/getNetworkUsages.json | 372 ++++ .../examples/getQuotaRequestStatusById.json | 36 + .../examples/getQuotaRequestStatusFailed.json | 40 + .../getQuotaRequestStatusInProgress.json | 49 + .../examples/getQuotaRequestsHistory.json | 94 + .../examples/patchComputeQuotaRequest.json | 46 + .../patchNetworkOneSkuQuotaRequest.json | 47 + .../putComputeOneSkuQuotaRequest.json | 45 + ...arningServicesQuotaRequestLowPriority.json | 47 + .../putNetworkOneSkuQuotaRequest.json | 47 + ...taRequestStandardSkuPublicIpAddresses.json | 47 + .../stable/2025-03-01/groupquota.json | 1962 +++++++++++++++++ .../stable/2025-03-01/quota.json | 1299 +++++++++++ .../quota/resource-manager/readme.md | 14 +- .../resource-manager/sdk-suppressions.yaml | 28 + 46 files changed, 6469 insertions(+), 2 deletions(-) create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GetOperations.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimits/ListGroupQuotaLimits-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_Get.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_List.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/PatchGroupQuotaLimitsRequests-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/DeleteGroupQuotas.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotas.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotasList.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PatchGroupQuotas.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PutGroupQuotas.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/DeleteGroupQuotaSubscriptions.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/GetGroupQuotaSubscriptions.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/ListGroupQuotaSubscriptions.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PatchGroupQuotasSubscription.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PutGroupQuotasSubscription.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocation/SubscriptionQuotaAllocation_List-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/PatchSubscriptionQuotaAllocationRequest-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_Get-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_List-Compute.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_Get.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_List.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuQuotaLimit.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuUsages.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeQuotaLimits.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeUsages.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesQuotaLimits.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesUsages.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuQuotaLimit.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuUsages.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkQuotaLimits.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkUsages.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusById.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusFailed.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusInProgress.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestsHistory.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchComputeQuotaRequest.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchNetworkOneSkuQuotaRequest.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putComputeOneSkuQuotaRequest.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putMachineLearningServicesQuotaRequestLowPriority.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequest.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequestStandardSkuPublicIpAddresses.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/groupquota.json create mode 100644 specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/quota.json create mode 100644 specification/quota/resource-manager/sdk-suppressions.yaml diff --git a/cSpell.json b/cSpell.json index 832d976f169a..c79a9d455464 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1835,6 +1835,13 @@ "modelerfour" ] }, + { + "filename": "**/specification/quota/resource-manager/readme.md", + "words": [ + "groupquota", + "modelerfour" + ] + }, { "filename": "**/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml", "words": [ diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GetOperations.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GetOperations.json new file mode 100644 index 000000000000..8413cf551d48 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GetOperations.json @@ -0,0 +1,157 @@ +{ + "parameters": { + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Quota/quotas/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "Resource Quota limit", + "operation": "Get resource Quota limit", + "description": "Get the current Service limit or quota of the specified resource" + } + }, + { + "name": "Microsoft.Quota/quotas/write", + "display": { + "provider": "Microsoft.Quota", + "resource": "Resource Quota limit", + "operation": "Creates resource Quota limit request", + "description": "Creates the service limit or quota request for the specified resource" + } + }, + { + "name": "Microsoft.Quota/quotaRequests/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "Resource Quota limit request", + "operation": "Get Quota limit request", + "description": "Get any service limit request for the specified resource" + } + }, + { + "name": "Microsoft.Quota/usages/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "usages information", + "operation": "Get the usages for providers", + "description": "Get the usages for resource providers" + } + }, + { + "name": "Microsoft.Quota/operations/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "Read Operation", + "operation": "Get the Operations supported by Microsoft.Quota", + "description": "Get the Operations supported by Microsoft.Quota" + } + }, + { + "name": "Microsoft.Quota/register/action", + "display": { + "provider": "Microsoft.Quota", + "resource": "Subscription registration with Resource provider", + "operation": "Register the subscription with Microsoft.Quota Resource Provider", + "description": "Register the subscription with Microsoft.Quota Resource Provider" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota resource", + "operation": "Get GroupQuota resource", + "description": "Get the GroupQuota" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/write", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota Resource", + "operation": "Creates GroupQuota resource", + "description": "Creates the GroupQuota resource" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/subscriptions/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "Subscriptions added to GroupQuota resource", + "operation": "Get GroupQuota subscriptions", + "description": "Get the GroupQuota subscriptions" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/subscriptions/write", + "display": { + "provider": "Creates request to add subscription to GroupQuota resource", + "resource": "Subscriptions added to GroupQuota resource", + "operation": "Adds subscription to GroupQuota resource", + "description": "Add Subscriptions to GroupQuota resource" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/groupQuotaLimits/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota Resource Quota limit", + "operation": "Get GroupQuota resource Quota limit", + "description": "Get the current GroupQuota of the specified resource" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/groupQuotaLimits/write", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota Resource Quota limit", + "operation": "Creates GroupQuota resource Quota limit request", + "description": "Creates the GroupQuota request for the specified resource" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/groupQuotaRequests/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota request", + "operation": "Get GroupQuota request status", + "description": "Get the GroupQuota request status for the specific request" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/quotaAllocations/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota to Subscription Quota allocation", + "operation": "Get GroupQuota to Subscription Quota allocation", + "description": "Get the current GroupQuota to Subscription Quota allocation" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/quotaAllocations/write", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota to Subscription Quota allocation", + "operation": "Creates GroupQuota to subscription Quota limit request", + "description": "Creates the GroupQuota to subscription Quota limit request for the specified resource" + } + }, + { + "name": "Microsoft.Quota/groupQuotas/quotaAllocationRequests/read", + "display": { + "provider": "Microsoft.Quota", + "resource": "GroupQuota to Subscription Quota allocation request", + "operation": "Get GroupQuota to Subscription Quota allocation request status", + "description": "Get the GroupQuota to Subscription Quota allocation request status for the specific request" + } + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimits/ListGroupQuotaLimits-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimits/ListGroupQuotaLimits-Compute.json new file mode 100644 index 000000000000..703054412a29 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimits/ListGroupQuotaLimits-Compute.json @@ -0,0 +1,70 @@ +{ + "operationId": "GroupQuotaLimits_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "resourceProviderName": "Microsoft.Compute", + "location": "westus", + "$filter": "resourceName eq cores" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/groupQuotaLimits/westus", + "name": "westus", + "type": "Microsoft.Quota/groupQuotas/groupQuotaLimits", + "properties": { + "provisioningState": "Succeeded", + "value": [ + { + "properties": { + "limit": 100, + "resourceName": "standardddv4family", + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + }, + "unit": "count", + "availableLimit": 50, + "allocatedToSubscriptions": { + "value": [ + { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "quotaAllocated": 20 + }, + { + "subscriptionId": "A000000-0000-0000-0000-000000000000", + "quotaAllocated": 30 + } + ] + } + } + }, + { + "properties": { + "limit": 100, + "resourceName": "standardav2family", + "name": { + "value": "standardav2family", + "localizedValue": "Standard AV2 Family vCPUs" + }, + "unit": "count", + "availableLimit": 80, + "allocatedToSubscriptions": { + "value": [ + { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "quotaAllocated": 20 + } + ] + } + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_Get.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_Get.json new file mode 100644 index 000000000000..04aa7c6bd192 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_Get.json @@ -0,0 +1,34 @@ +{ + "operationId": "GroupQuotaLimitsRequests_Get", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "requestId": "requestId", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/groupQuotaLimitsRequests/requestId", + "type": "Microsoft.Quota/groupQuotas/groupQuotaLimitsRequests", + "name": "requestId", + "properties": { + "requestedResource": { + "properties": { + "limit": 100, + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + }, + "region": "westus", + "comments": "" + } + }, + "requestSubmitTime": "2024-03-20T05:29:34.144Z", + "provisioningState": "Failed", + "faultCode": "ResourceNotAvailableForOffer" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_List.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_List.json new file mode 100644 index 000000000000..8f11576e7233 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_List.json @@ -0,0 +1,62 @@ +{ + "operationId": "GroupQuotaLimitsRequests_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "resourceName": "standardav2family", + "api-version": "2025-03-01", + "$filter": "location eq westus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/groupQuotaLimitsRequests/requestId1", + "type": "Microsoft.Quota/groupQuotas/groupQuotaLimitsRequests", + "name": "requestId1", + "properties": { + "requestedResource": { + "properties": { + "limit": 100, + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + }, + "region": "westus", + "comments": "Contoso requires more quota." + } + }, + "requestSubmitTime": "2023-11-18T00:12:34.004Z", + "provisioningState": "Failed", + "faultCode": "ResourceNotAvailableForOffer" + } + }, + { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/groupQuotaLimitsRequests/requestId2", + "type": "Microsoft.Quota/groupQuotas/groupQuotaLimitsRequests", + "name": "requestId2", + "properties": { + "requestedResource": { + "properties": { + "region": "westus", + "comments": "Contoso requires more quota.", + "name": { + "value": "standardav2family", + "localizedValue": "standardav2family" + }, + "limit": 150 + } + }, + "requestSubmitTime": "2023-11-17T00:57:43.410Z", + "provisioningState": "Succeeded", + "faultCode": "" + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/PatchGroupQuotaLimitsRequests-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/PatchGroupQuotaLimitsRequests-Compute.json new file mode 100644 index 000000000000..0cd95093a423 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotaLimitsRequests/PatchGroupQuotaLimitsRequests-Compute.json @@ -0,0 +1,97 @@ +{ + "operationId": "GroupQuotaLimitRequests_Update", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "location": "westus", + "api-version": "2025-03-01", + "groupQuotaRequest": { + "properties": { + "value": [ + { + "properties": { + "limit": 110, + "resourceName": "standardddv4family", + "comment": "Contoso requires more quota." + } + }, + { + "properties": { + "limit": 110, + "resourceName": "standardav2family", + "comment": "Contoso requires more quota." + } + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/groupQuotaLimits/westus", + "name": "westus", + "type": "Microsoft.Quota/groupQuotas/groupQuotaLimits", + "properties": { + "provisioningState": "Succeeded", + "value": [ + { + "properties": { + "limit": 100, + "resourceName": "standardddv4family", + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + }, + "unit": "count", + "availableLimit": 50, + "allocatedToSubscriptions": { + "value": [ + { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "quotaAllocated": 20 + }, + { + "subscriptionId": "A000000-0000-0000-0000-000000000000", + "quotaAllocated": 30 + } + ] + } + } + }, + { + "properties": { + "limit": 100, + "resourceName": "standardav2family", + "name": { + "value": "standardav2family", + "localizedValue": "Standard AV2 Family vCPUs" + }, + "unit": "count", + "availableLimit": 80, + "allocatedToSubscriptions": { + "value": [ + { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "quotaAllocated": 20 + } + ] + } + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/DeleteGroupQuotas.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/DeleteGroupQuotas.json new file mode 100644 index 000000000000..99a30e17de64 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/DeleteGroupQuotas.json @@ -0,0 +1,19 @@ +{ + "operationId": "GroupQuotas_Delete", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01" + }, + "responses": { + "204": {}, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotas.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotas.json new file mode 100644 index 000000000000..62e0b760bd8b --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotas.json @@ -0,0 +1,21 @@ +{ + "operationId": " GroupQuotas_Get", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "properties": { + "displayName": "GroupQuota1", + "provisioningState": "Accepted" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1", + "type": "Microsoft.Quota/groupQuotas", + "name": "groupquota1" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotasList.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotasList.json new file mode 100644 index 000000000000..d6a2949e55cb --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/GetGroupQuotasList.json @@ -0,0 +1,25 @@ +{ + "operationId": "GroupQuotas_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "displayName": "GroupQuota1", + "provisioningState": "Accepted" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1", + "type": "Microsoft.Quota/groupQuotas", + "name": "groupquota1" + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PatchGroupQuotas.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PatchGroupQuotas.json new file mode 100644 index 000000000000..c603e340f3a8 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PatchGroupQuotas.json @@ -0,0 +1,34 @@ +{ + "operationId": "GroupQuotas_Update", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "GroupQuotasPatchRequestBody": { + "properties": { + "displayName": "UpdatedGroupQuota1" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "displayName": "UpdatedGroupQuota1", + "provisioningState": "Accepted" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1", + "type": "Microsoft.Quota/groupQuotas", + "name": "groupquota1" + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PutGroupQuotas.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PutGroupQuotas.json new file mode 100644 index 000000000000..318adf566b36 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotas/PutGroupQuotas.json @@ -0,0 +1,42 @@ +{ + "operationId": "GroupQuotas_CreateOrUpdate", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "GroupQuotaPutRequestBody": { + "properties": { + "displayName": "GroupQuota1" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1", + "type": "Microsoft.Quota/groupQuotas", + "name": "groupquota1", + "properties": { + "displayName": "GroupQuota1", + "provisioningState": "Accepted" + } + } + }, + "201": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + }, + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1", + "type": "Microsoft.Quota/groupQuotas", + "name": "groupquota1", + "properties": { + "provisioningState": "Accepted" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/DeleteGroupQuotaSubscriptions.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/DeleteGroupQuotaSubscriptions.json new file mode 100644 index 000000000000..3b9bfcfbba53 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/DeleteGroupQuotaSubscriptions.json @@ -0,0 +1,20 @@ +{ + "operationId": "GroupQuotaSubscriptions_Delete", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {}, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/GetGroupQuotaSubscriptions.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/GetGroupQuotaSubscriptions.json new file mode 100644 index 000000000000..90ea41110a05 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/GetGroupQuotaSubscriptions.json @@ -0,0 +1,22 @@ +{ + "operationId": "GroupQuotaSubscription_Get", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "properties": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "00000000-0000-0000-0000-000000000000" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/ListGroupQuotaSubscriptions.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/ListGroupQuotaSubscriptions.json new file mode 100644 index 000000000000..101be8691f0f --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/ListGroupQuotaSubscriptions.json @@ -0,0 +1,35 @@ +{ + "operationId": "GroupQuotaSubscription_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Succeeded" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "00000000-0000-0000-0000-000000000000" + }, + { + "properties": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "provisioningState": "Succeeded" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/11111111-1111-1111-1111-111111111111", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "11111111-1111-1111-1111-111111111111" + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PatchGroupQuotasSubscription.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PatchGroupQuotasSubscription.json new file mode 100644 index 000000000000..b15b0fdf0dea --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PatchGroupQuotasSubscription.json @@ -0,0 +1,33 @@ +{ + "operationId": "GroupQuotaSubscriptions_Update", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "headers": { + "location": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Accepted" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "00000000-0000-0000-0000-000000000000" + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PutGroupQuotasSubscription.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PutGroupQuotasSubscription.json new file mode 100644 index 000000000000..c31be273a293 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/GroupQuotasSubscriptions/PutGroupQuotasSubscription.json @@ -0,0 +1,38 @@ +{ + "operationId": "GroupQuotaSubscriptions_CreateOrUpdate", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "properties": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "provisioningState": "Accepted" + }, + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "00000000-0000-0000-0000-000000000000" + } + }, + "201": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + }, + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/providers/Microsoft.Quota/groupQuotas/groupquota1/subscriptions/00000000-0000-0000-0000-000000000000", + "type": "Microsoft.Quota/groupQuotas/subscriptions", + "name": "00000000-0000-0000-0000-000000000000", + "properties": { + "provisioningState": "Accepted" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocation/SubscriptionQuotaAllocation_List-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocation/SubscriptionQuotaAllocation_List-Compute.json new file mode 100644 index 000000000000..715541ca80e0 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocation/SubscriptionQuotaAllocation_List-Compute.json @@ -0,0 +1,49 @@ +{ + "operationId": "GroupQuotaSubscriptionAllocation_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "location": "westus", + "api-version": "2025-03-01", + "$filter": "resourceName eq cores" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/quotaAllocations/westus", + "name": "westus", + "type": "Microsoft.Quota/groupQuotas/quotaAllocations", + "properties": { + "provisioningState": "Succeeded", + "value": [ + { + "properties": { + "resourceName": "standardddv4family", + "limit": 25, + "shareableQuota": 15, + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + } + } + }, + { + "properties": { + "limit": 30, + "resourceName": "standardav2family", + "shareableQuota": 0, + "name": { + "value": "standardav2family", + "localizedValue": "standard Av2 Family vCPUs" + } + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/PatchSubscriptionQuotaAllocationRequest-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/PatchSubscriptionQuotaAllocationRequest-Compute.json new file mode 100644 index 000000000000..4ea91eece61d --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/PatchSubscriptionQuotaAllocationRequest-Compute.json @@ -0,0 +1,74 @@ +{ + "operationId": "GroupQuotaSubscriptionAllocationRequest_Update", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "location": "westus", + "api-version": "2025-03-01", + "allocateQuotaRequest": { + "properties": { + "value": [ + { + "properties": { + "limit": 110, + "resourceName": "standardddv4family" + } + }, + { + "properties": { + "limit": 110, + "resourceName": "standardav2family" + } + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/quotaAllocations/westus", + "name": "westus", + "type": "Microsoft.Quota/groupQuotas/quotaAllocations", + "properties": { + "provisioningState": "Succeeded", + "value": [ + { + "properties": { + "resourceName": "standardddv4family", + "limit": 25, + "shareableQuota": 15, + "name": { + "value": "standardddv4family", + "localizedValue": "standard DDv4 Family vCPUs" + } + } + }, + { + "properties": { + "limit": 30, + "resourceName": "standardav2family", + "shareableQuota": 0, + "name": { + "value": "standardav2family", + "localizedValue": "standard Av2 Family vCPUs" + } + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus", + "Operation-Location": "https://contoso.com/operationstatus", + "retry-after": 30 + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_Get-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_Get-Compute.json new file mode 100644 index 000000000000..d1fe9e076fe4 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_Get-Compute.json @@ -0,0 +1,36 @@ +{ + "operationId": "GroupQuotaSubscriptionAllocationRequests_Get", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "allocationId": "AE000000-0000-0000-0000-00000000000A", + "api-version": "2025-03-01", + "$filter": "provider eq Microsoft.Compute & location eq westus" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Quota/groupQuotas/groupquota1/quotaAllocationRequests/AE000000-0000-0000-0000-00000000000A", + "type": "Microsoft.Quota/groupQuotas/quotaAllocationRequests", + "name": "AE000000-0000-0000-0000-00000000000A", + "properties": { + "requestedResource": { + "properties": { + "region": "westus", + "limit": 75, + "name": { + "value": "standardav2family", + "localizedValue": "standard Av2 Family vCPUs" + } + } + }, + "requestSubmitTime": "2023-11-17T01:06:02.191Z", + "provisioningState": "Failed", + "faultCode": "ContactSupport" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_List-Compute.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_List-Compute.json new file mode 100644 index 000000000000..6bebbb6b20d6 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_List-Compute.json @@ -0,0 +1,40 @@ +{ + "operationId": "GroupQuotaSubscriptionAllocationRequests_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "groupQuotaName": "groupquota1", + "resourceProviderName": "Microsoft.Compute", + "api-version": "2025-03-01", + "$filter": "location eq westus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/providers/Microsoft.Management/managementGroups/E7EC67B3-7657-4966-BFFC-41EFD36BAA09/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Quota/groupQuotas/groupquota1/resourceProviders/Microsoft.Compute/quotaAllocationRequests/AE000000-0000-0000-0000-00000000000A", + "type": "Microsoft.Quota/groupQuotas/quotaAllocationRequests", + "name": "AE000000-0000-0000-0000-00000000000A", + "properties": { + "requestedResource": { + "properties": { + "limit": 75, + "name": { + "value": "standardav2family", + "localizedValue": "standard Av2 Family vCPUs" + }, + "region": "westus" + } + }, + "requestSubmitTime": "2024-03-20T06:18:59.913Z", + "provisioningState": "Failed", + "faultCode": "ContactSupport" + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_Get.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_Get.json new file mode 100644 index 000000000000..806b8a7eb166 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_Get.json @@ -0,0 +1,23 @@ +{ + "operationId": "GroupQuotaSubscriptionRequests_Get", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "requestId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.Quota/groupQuotas/SubscriptionRequest", + "properties": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "provisioningState": "Accepted", + "requestSubmitTime": "2023-11-17T00:56:45.009Z" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_List.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_List.json new file mode 100644 index 000000000000..2bf5c8b05282 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/SubscriptionRequests/SubscriptionRequests_List.json @@ -0,0 +1,27 @@ +{ + "operationId": "GroupQuotaSubscriptionRequests_List", + "parameters": { + "managementGroupId": "E7EC67B3-7657-4966-BFFC-41EFD36BAA09", + "groupQuotaName": "groupquota1", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.Quota/groupQuotas/SubscriptionRequest", + "properties": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "provisioningState": "Accepted", + "requestSubmitTime": "2023-11-17T00:56:45.009Z" + } + } + ], + "nextLink": "https://yourLinkHere.com" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuQuotaLimit.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuQuotaLimit.json new file mode 100644 index 000000000000..1d69f77f8c29 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuQuotaLimit.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "resourceName": "standardNDSFamily", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardNDSFamily", + "type": "Microsoft.Quota/Quotas", + "name": "standardNDSFamily", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 100, + "limitType": "Independent" + }, + "unit": "Count", + "name": { + "value": "standardNDSFamily", + "localizedValue": "Standard NDS Family vCPUs" + }, + "isQuotaApplicable": true + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuUsages.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuUsages.json new file mode 100644 index 000000000000..594750168a0e --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeOneSkuUsages.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "resourceName": "standardNDSFamily", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardNDSFamily", + "type": "Microsoft.Quota/Usages", + "name": "standardNDSFamily", + "properties": { + "usages": { + "usagesType": "Individual", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "standardNDSFamily", + "localizedValue": "Standard NDS Family vCPUs" + }, + "isQuotaApplicable": true + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeQuotaLimits.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeQuotaLimits.json new file mode 100644 index 000000000000..70eae8477d75 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeQuotaLimits.json @@ -0,0 +1,219 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardFSv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardFSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardFSv2Family", + "localizedValue": "Standard FSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardNDSFamily", + "type": "Microsoft.Quota/Quotas", + "name": "standardNDSFamily", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNDSFamily", + "localizedValue": "Standard NDS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardNCSv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardNCSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNCSv2Family", + "localizedValue": "Standard NCSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardNCSv3Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardNCSv3Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNCSv3Family", + "localizedValue": "Standard NCSv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardLSv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardLSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardLSv2Family", + "localizedValue": "Standard LSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardPBSFamily", + "type": "Microsoft.Quota/Quotas", + "name": "standardPBSFamily", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardPBSFamily", + "localizedValue": "Standard PBS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardEIv3Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardEIv3Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardEIv3Family", + "localizedValue": "Standard EIv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardEISv3Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardEISv3Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardEISv3Family", + "localizedValue": "Standard EISv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardDCSFamily", + "type": "Microsoft.Quota/Quotas", + "name": "standardDCSFamily", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardDCSFamily", + "localizedValue": "Standard DCS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardNVSv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardNVSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNVSv2Family", + "localizedValue": "Standard NVSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/standardMSv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardMSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardMSv2Family", + "localizedValue": "Standard MSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Quotas/availabilitySets", + "type": "Microsoft.Quota/Quotas", + "name": "availabilitySets", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": false, + "name": { + "value": "availabilitySets", + "localizedValue": "Availability Sets" + } + } + } + ], + "nextLink": "" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeUsages.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeUsages.json new file mode 100644 index 000000000000..66bf336bbc04 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getComputeUsages.json @@ -0,0 +1,207 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardFSv2Family", + "type": "Microsoft.Quota/Usages", + "name": "standardFSv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardFSv2Family", + "localizedValue": "Standard FSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardNDSFamily", + "type": "Microsoft.Quota/Usages", + "name": "standardNDSFamily", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNDSFamily", + "localizedValue": "Standard NDS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardNCSv2Family", + "type": "Microsoft.Quota/Usages", + "name": "standardNCSv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNCSv2Family", + "localizedValue": "Standard NCSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardNCSv3Family", + "type": "Microsoft.Quota/Usages", + "name": "standardNCSv3Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNCSv3Family", + "localizedValue": "Standard NCSv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardLSv2Family", + "type": "Microsoft.Quota/Usages", + "name": "standardLSv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardLSv2Family", + "localizedValue": "Standard LSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardPBSFamily", + "type": "Microsoft.Quota/Usages", + "name": "standardPBSFamily", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardPBSFamily", + "localizedValue": "Standard PBS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardEIv3Family", + "type": "Microsoft.Quota/Usages", + "name": "standardEIv3Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardEIv3Family", + "localizedValue": "Standard EIv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardEISv3Family", + "type": "Microsoft.Quota/Usages", + "name": "standardEISv3Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardEISv3Family", + "localizedValue": "Standard EISv3 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardDCSFamily", + "type": "Microsoft.Quota/Usages", + "name": "standardDCSFamily", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardDCSFamily", + "localizedValue": "Standard DCS Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardNVSv2Family", + "type": "Microsoft.Quota/Usages", + "name": "standardNVSv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardNVSv2Family", + "localizedValue": "Standard NVSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/standardMSv2Family", + "type": "Microsoft.Quota/Usages", + "name": "standardMSv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": true, + "name": { + "value": "standardMSv2Family", + "localizedValue": "Standard MSv2 Family vCPUs" + } + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/Usages/availabilitySets", + "type": "Microsoft.Quota/Usages", + "name": "availabilitySets", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "isQuotaApplicable": false, + "name": { + "value": "availabilitySets", + "localizedValue": "Availability Sets" + } + } + } + ], + "nextLink": "" + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesQuotaLimits.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesQuotaLimits.json new file mode 100644 index 000000000000..996e312e822e --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesQuotaLimits.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus/providers/Microsoft.Quota/Quotas/standardDv2Family", + "type": "Microsoft.Quota/Quotas", + "name": "standardDv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "standardDv2Family", + "localizedValue": "Standard Dv2 Family vCPUs" + }, + "resourceType": "dedicated" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus/providers/Microsoft.Quota/Quotas/totalLowPriorityCores", + "type": "Microsoft.Quota/Quotas", + "name": "totalLowPriorityCores", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "totalLowPriorityCores", + "localizedValue": "Total Regional Low-priority vCPUs" + }, + "resourceType": "lowPriority" + } + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesUsages.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesUsages.json new file mode 100644 index 000000000000..d5a3f79f2762 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getMachineLearningServicesUsages.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus/providers/Microsoft.Quota/usages/standardDv2Family", + "type": "Microsoft.Quota/usages", + "name": "standardDv2Family", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "standardDv2Family", + "localizedValue": "Standard Dv2 Family vCPUs" + }, + "resourceType": "dedicated" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.MachineLearningServices/locations/eastus/providers/Microsoft.Quota/usages/totalLowPriorityCores", + "type": "Microsoft.Quota/usages", + "name": "totalLowPriorityCores", + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "totalLowPriorityCores", + "localizedValue": "Total Regional Low-priority vCPUs" + }, + "resourceType": "lowPriority" + } + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuQuotaLimit.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuQuotaLimit.json new file mode 100644 index 000000000000..bcbe3fd9a3f8 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuQuotaLimit.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus", + "resourceName": "MinPublicIpInterNetworkPrefixLength", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/MinPublicIpInterNetworkPrefixLength", + "type": "Microsoft.Quota/Quotas", + "name": "MinPublicIpInterNetworkPrefixLength", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength", + "localizedValue": "Min Public Ip InterNetwork Prefix Length" + }, + "unit": "Count", + "isQuotaApplicable": true, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuUsages.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuUsages.json new file mode 100644 index 000000000000..8ddc2dd703ed --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkOneSkuUsages.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus", + "resourceName": "MinPublicIpInterNetworkPrefixLength", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/MinPublicIpInterNetworkPrefixLength", + "type": "Microsoft.Quota/usages", + "name": "MinPublicIpInterNetworkPrefixLength", + "properties": { + "usages": { + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength", + "localizedValue": "Min Public Ip InterNetwork Prefix Length" + }, + "unit": "Count", + "isQuotaApplicable": true, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkQuotaLimits.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkQuotaLimits.json new file mode 100644 index 000000000000..796f4bcb8807 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkQuotaLimits.json @@ -0,0 +1,699 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "VirtualNetworks", + "localizedValue": "Virtual Networks" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "VirtualNetworks" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StaticPublicIPAddresses", + "localizedValue": "Static Public IP Addresses" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "StaticPublicIPAddresses" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkSecurityGroups", + "localizedValue": "Network Security Groups" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "NetworkSecurityGroups" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PublicIPAddresses", + "localizedValue": "Public IP Addresses - Basic" + }, + "properties": {}, + "isQuotaApplicable": true + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PublicIPAddresses" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PublicIpPrefixes", + "localizedValue": "Public Ip Prefixes" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PublicIpPrefixes" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NatGateways", + "localizedValue": "Nat Gateways" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "NatGateways" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkInterfaces", + "localizedValue": "Network Interfaces" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "NetworkInterfaces" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateEndpoints", + "localizedValue": "Private Endpoints" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PrivateEndpoints" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateEndpointRedirectMaps", + "localizedValue": "Private Endpoint Redirect Maps" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PrivateEndpointRedirectMaps" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "LoadBalancers", + "localizedValue": "Load Balancers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "LoadBalancers" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateLinkServices", + "localizedValue": "Private Link Services" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PrivateLinkServices" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "ApplicationGateways", + "localizedValue": "Application Gateways" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "ApplicationGateways" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RouteTables", + "localizedValue": "Route Tables" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "RouteTables" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RouteFilters", + "localizedValue": "Route Filters" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "RouteFilters" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkWatchers", + "localizedValue": "Network Watchers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "NetworkWatchers" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PacketCaptures", + "localizedValue": "Packet Captures" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PacketCaptures" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "ApplicationSecurityGroups", + "localizedValue": "Application Security Groups." + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "ApplicationSecurityGroups" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "DdosProtectionPlans", + "localizedValue": "DDoS Protection Plans." + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "DdosProtectionPlans" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "DdosCustomPolicies", + "localizedValue": "DDoS customized policies" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "DdosCustomPolicies" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "ServiceEndpointPolicies", + "localizedValue": "Service Endpoint Policies" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "ServiceEndpointPolicies" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkIntentPolicies", + "localizedValue": "Network Intent Policies" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "NetworkIntentPolicies" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StandardSkuLoadBalancers", + "localizedValue": "Standard Sku Load Balancers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "StandardSkuLoadBalancers" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StandardSkuPublicIpAddresses", + "localizedValue": "Public IP Addresses - Standard" + }, + "properties": {}, + "isQuotaApplicable": true + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "StandardSkuPublicIpAddresses" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "DnsServersPerVirtualNetwork", + "localizedValue": "DNS servers per Virtual Network" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "DnsServersPerVirtualNetwork" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "CustomDnsServersPerP2SVpnGateway", + "localizedValue": "Custom DNS servers per P2SVpnGateway" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "CustomDnsServersPerP2SVpnGateway" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "SubnetsPerVirtualNetwork", + "localizedValue": "Subnets per Virtual Network" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "SubnetsPerVirtualNetwork" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "IPConfigurationsPerVirtualNetwork", + "localizedValue": "IP Configurations per Virtual Network" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "IPConfigurationsPerVirtualNetwork" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PeeringsPerVirtualNetwork", + "localizedValue": "Peerings per Virtual Network" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "PeeringsPerVirtualNetwork" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "SecurityRulesPerNetworkSecurityGroup", + "localizedValue": "Security rules per Network Security Group" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "SecurityRulesPerNetworkSecurityGroup" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "SecurityRulesPerNetworkIntentPolicy", + "localizedValue": "Security rules per Network Intent Policy" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "SecurityRulesPerNetworkIntentPolicy" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RoutesPerNetworkIntentPolicy", + "localizedValue": "Routes per Network Intent Policy" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "RoutesPerNetworkIntentPolicy" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "SecurityRuleAddressesOrPortsPerNetworkSecurityGroup", + "localizedValue": "Security rules addresses or ports per Network Security Group" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "SecurityRuleAddressesOrPortsPerNetworkSecurityGroup" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "InboundRulesPerLoadBalancer", + "localizedValue": "Inbound Rules per Load Balancer" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "InboundRulesPerLoadBalancer" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "FrontendIPConfigurationPerLoadBalancer", + "localizedValue": "Frontend IP Configurations per Load Balancer" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "FrontendIPConfigurationPerLoadBalancer" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "OutboundRulesPerLoadBalancer", + "localizedValue": "Outbound Rules per Load Balancer" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "OutboundRulesPerLoadBalancer" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RoutesPerRouteTable", + "localizedValue": "Routes per Route Table" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "RoutesPerRouteTable" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RoutesWithServiceTagPerRouteTable", + "localizedValue": "Routes with service tag per Route Table" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "RoutesWithServiceTagPerRouteTable" + }, + { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "unit": "Count", + "name": { + "value": "MinPublicIpInterNetworkPrefixLength", + "localizedValue": "Min Public Ip InterNetwork Prefix Length" + }, + "properties": {}, + "isQuotaApplicable": true, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/Quotas/", + "type": "Microsoft.Quota/Quotas", + "name": "MinPublicIpInterNetworkPrefixLength" + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkUsages.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkUsages.json new file mode 100644 index 000000000000..92ea24a9e462 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getNetworkUsages.json @@ -0,0 +1,372 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "VirtualNetworks", + "localizedValue": "Virtual Networks" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "VirtualNetworks" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StaticPublicIPAddresses", + "localizedValue": "Static Public IP Addresses" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "StaticPublicIPAddresses" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkSecurityGroups", + "localizedValue": "Network Security Groups" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "NetworkSecurityGroups" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PublicIPAddresses", + "localizedValue": "Public IP Addresses - Basic" + }, + "isQuotaApplicable": true, + "resourceType": "PublicIpAddresses", + "properties": {} + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PublicIPAddresses" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PublicIpPrefixes", + "localizedValue": "Public Ip Prefixes" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PublicIpPrefixes" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NatGateways", + "localizedValue": "Nat Gateways" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "NatGateways" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkInterfaces", + "localizedValue": "Network Interfaces" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "NetworkInterfaces" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateEndpoints", + "localizedValue": "Private Endpoints" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PrivateEndpoints" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateEndpointRedirectMaps", + "localizedValue": "Private Endpoint Redirect Maps" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PrivateEndpointRedirectMaps" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "LoadBalancers", + "localizedValue": "Load Balancers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "LoadBalancers" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PrivateLinkServices", + "localizedValue": "Private Link Services" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PrivateLinkServices" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "ApplicationGateways", + "localizedValue": "Application Gateways" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "ApplicationGateways" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RouteTables", + "localizedValue": "Route Tables" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "RouteTables" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "RouteFilters", + "localizedValue": "Route Filters" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "RouteFilters" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "NetworkWatchers", + "localizedValue": "Network Watchers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "NetworkWatchers" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "PacketCaptures", + "localizedValue": "Packet Captures" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "PacketCaptures" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "ApplicationSecurityGroups", + "localizedValue": "Application Security Groups." + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "ApplicationSecurityGroups" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StandardSkuLoadBalancers", + "localizedValue": "Standard Sku Load Balancers" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "StandardSkuLoadBalancers" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "StandardSkuPublicIpAddresses", + "localizedValue": "Public IP Addresses - Standard" + }, + "isQuotaApplicable": true, + "resourceType": "PublicIpAddresses" + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "StandardSkuPublicIpAddresses" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "DnsServersPerVirtualNetwork", + "localizedValue": "DNS servers per Virtual Network" + }, + "properties": {}, + "isQuotaApplicable": false + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "DnsServersPerVirtualNetwork" + }, + { + "properties": { + "usages": { + "value": 10 + }, + "unit": "Count", + "name": { + "value": "MinPublicIpInterNetworkPrefixLength", + "localizedValue": "Min Public Ip InterNetwork Prefix Length" + }, + "properties": {}, + "isQuotaApplicable": true + }, + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/usages/", + "type": "Microsoft.Quota/usages", + "name": "MinPublicIpInterNetworkPrefixLength" + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusById.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusById.json new file mode 100644 index 000000000000..e9d5b755b576 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusById.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus", + "id": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotaRequests", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "requestSubmitTime": "2019-08-19T19:23:17.904Z", + "message": "Request completed", + "provisioningState": "Succeeded", + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 50 + }, + "unit": "Count", + "name": { + "value": "standardNCPromoFamily", + "localizedValue": "Standard NC Promo Family vCPUs" + }, + "message": "Request completed", + "provisioningState": "Succeeded" + } + ] + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusFailed.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusFailed.json new file mode 100644 index 000000000000..32850b45504e --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusFailed.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "id": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotaRequests", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "requestSubmitTime": "2019-08-19T19:23:17.904Z", + "message": "Request failed, please contact support.", + "provisioningState": "Failed", + "error": { + "code": "ContactSupport", + "message": "Request failed, please contact support." + }, + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 50 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardNCPromoFamily", + "localizedValue": "Standard NC Promo Family vCPUs" + }, + "message": "Request failed, please contact support.", + "provisioningState": "Failed" + } + ] + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusInProgress.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusInProgress.json new file mode 100644 index 000000000000..10c80a133f82 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestStatusInProgress.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "scope": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus", + "id": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotaRequests", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "requestSubmitTime": "2019-08-19T19:23:17.904Z", + "message": "Request processing", + "provisioningState": "InProgress", + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 50 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardHCSFamily", + "localizedValue": "Standard HCS Family vCPUs" + }, + "message": "Request completed", + "provisioningState": "Succeeded" + }, + { + "limit": { + "limitObjectType": "LimitValue", + "value": 50 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardNCPromoFamily", + "localizedValue": "Standard NC Promo Family vCPUs" + }, + "message": "Request processing", + "provisioningState": "InProgress" + } + ] + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestsHistory.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestsHistory.json new file mode 100644 index 000000000000..88be8d53ee30 --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/getQuotaRequestsHistory.json @@ -0,0 +1,94 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/microsoft.Quota/resourceProviders/Microsoft.Compute/locations/eastus/quotaRequests?api-version=2021-03-15&$top=3", + "value": [ + { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotaRequests", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "requestSubmitTime": "2019-08-19T19:23:17.904Z", + "message": "Request completed", + "provisioningState": "Success", + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 50 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardNCPromoFamily", + "localizedValue": "Standard NC Promo Family vCPUs" + }, + "message": "Request completed", + "provisioningState": "Success" + } + ] + } + }, + { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/7E73A85C-83BB-4DE4-903F-076F1A2B91D6", + "type": "Microsoft.Quota/quotaRequests", + "name": "7E73A85C-83BB-4DE4-903F-076F1A2B91D6", + "properties": { + "requestSubmitTime": "2019-08-18T19:23:17.904Z", + "message": "Request completed", + "provisioningState": "Succeeded", + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 150 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardNVPromoFamily", + "localizedValue": "Standard NV Promo Family vCPUs" + }, + "message": "Request completed", + "provisioningState": "Succeeded" + } + ] + } + }, + { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/5E460077-AB53-4802-8997-A6940E0B7649", + "type": "Microsoft.Quota/quotaRequests", + "name": "5E460077-AB53-4802-8997-A6940E0B7649", + "properties": { + "requestSubmitTime": "2019-08-17T19:23:17.904Z", + "message": "The resource is currently unavailable in the location for the offer type.", + "provisioningState": "Failed", + "error": { + "code": "ResourceNotAvailableForOffer", + "message": "The resource is currently unavailable in the location for the offer type." + }, + "value": [ + { + "limit": { + "limitObjectType": "LimitValue", + "value": 52 + }, + "subRequestId": "AD07450A-DE86-4FD3-859B-107BEF218C4C", + "name": { + "value": "standardHBSFamily", + "localizedValue": "Standard HBS Family vCPUs" + }, + "message": "Request failed, please contact support.", + "provisioningState": "Failed" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchComputeQuotaRequest.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchComputeQuotaRequest.json new file mode 100644 index 000000000000..25c76125cd2d --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchComputeQuotaRequest.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus", + "resourceName": "standardFSv2Family", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "standardFSv2Family" + } + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotas/standardFSv2Family", + "type": "Microsoft.Quota/quotas", + "name": "standardFSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "standardFSv2Family", + "localizedValue": "Standard FSv2 Family vCPUs" + } + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchNetworkOneSkuQuotaRequest.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchNetworkOneSkuQuotaRequest.json new file mode 100644 index 000000000000..d6e45e7b2d4d --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/patchNetworkOneSkuQuotaRequest.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus", + "resourceName": "MinPublicIpInterNetworkPrefixLength", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength" + }, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotas", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength" + }, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putComputeOneSkuQuotaRequest.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putComputeOneSkuQuotaRequest.json new file mode 100644 index 000000000000..8bf8c286eccb --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putComputeOneSkuQuotaRequest.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus", + "resourceName": "standardFSv2Family", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "standardFSv2Family" + } + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotas/standardFSv2Family", + "type": "Microsoft.Quota/quotas", + "name": "standardFSv2Family", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "standardFSv2Family" + } + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putMachineLearningServicesQuotaRequestLowPriority.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putMachineLearningServicesQuotaRequestLowPriority.json new file mode 100644 index 000000000000..68a2eaa5ea3f --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putMachineLearningServicesQuotaRequestLowPriority.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.MachineLearningServices/locations/eastus", + "resourceName": "TotalLowPriorityCores", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "TotalLowPriorityCores" + }, + "resourceType": "lowPriority" + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Compute/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.MachineLearningServices/locations/eastus/providers/Microsoft.Quota/quotas/TotalLowPriorityCores", + "type": "Microsoft.Quota/quotas", + "name": "TotalLowPriorityCores", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "TotalLowPriorityCores" + }, + "resourceType": "lowPriority" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequest.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequest.json new file mode 100644 index 000000000000..d6e45e7b2d4d --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequest.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus", + "resourceName": "MinPublicIpInterNetworkPrefixLength", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength" + }, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotas", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "MinPublicIpInterNetworkPrefixLength" + }, + "resourceType": "MinPublicIpInterNetworkPrefixLength" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequestStandardSkuPublicIpAddresses.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequestStandardSkuPublicIpAddresses.json new file mode 100644 index 000000000000..39bd0f2fd46d --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/examples/putNetworkOneSkuQuotaRequestStandardSkuPublicIpAddresses.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "scope": "subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus", + "resourceName": "StandardSkuPublicIpAddresses", + "api-version": "2025-03-01", + "createQuotaRequest": { + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "StandardSkuPublicIpAddresses" + }, + "resourceType": "PublicIpAddresses" + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "30", + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/operationsStatus/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + } + }, + "200": { + "headers": { + "location": "https://management.azure.com/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequest/2B5C8515-37D8-4B6A-879B-CD641A2CF605?api-version=2023-02-01" + }, + "body": { + "id": "/subscriptions/D7EC67B3-7657-4966-BFFC-41EFD36BAAB3/providers/Microsoft.Network/locations/eastus/providers/Microsoft.Quota/quotaRequests/2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "type": "Microsoft.Quota/quotas", + "name": "2B5C8515-37D8-4B6A-879B-CD641A2CF605", + "properties": { + "limit": { + "limitObjectType": "LimitValue", + "value": 10 + }, + "name": { + "value": "StandardSkuPublicIpAddresses" + }, + "resourceType": "PublicIpAddresses" + } + } + } + } +} diff --git a/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/groupquota.json b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/groupquota.json new file mode 100644 index 000000000000..b1bab719c4fb --- /dev/null +++ b/specification/quota/resource-manager/Microsoft.Quota/stable/2025-03-01/groupquota.json @@ -0,0 +1,1962 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Quota Extension API", + "version": "2025-03-01", + "description": "Microsoft Azure Quota Resource Provider. This Swagger is for Azure Group Quota using GroupQuota Entity." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2", + "description": "Azure Active Directory OAuth 2.0 authorization" + } + }, + "paths": { + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}": { + "put": { + "tags": [ + "GroupQuotas" + ], + "summary": "Creates a new GroupQuota for the name passed.", + "description": "Creates a new GroupQuota for the name passed. A RequestId will be returned by the Service. The status can be polled periodically. The status Async polling is using standards defined at - https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md#asynchronous-operations. Use the OperationsStatus URI provided in Azure-AsyncOperation header, the duration will be specified in retry-after header. Once the operation gets to terminal state - Succeeded | Failed, then the URI will change to Get URI and full details can be checked.", + "operationId": "GroupQuotas_CreateOrUpdate", + "x-ms-examples": { + "GroupQuotas_Put_Request_ForCompute": { + "$ref": "./examples/GroupQuotas/PutGroupQuotas.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "GroupQuotaPutRequestBody", + "in": "body", + "description": "The GroupQuota body details for creation or update of a GroupQuota entity.", + "schema": { + "$ref": "#/definitions/GroupQuotasEntity" + } + } + ], + "responses": { + "200": { + "description": "OK, Create or Update", + "schema": { + "$ref": "#/definitions/GroupQuotasEntity" + } + }, + "201": { + "description": "Request Accepted, Create or Update", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers. New guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#131-resource-based-long-running-operations-relo", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/LROResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "GroupQuotas" + ], + "summary": "Updates a new GroupQuotas for the name passed.", + "description": "Updates the GroupQuotas for the name passed. A GroupQuotas RequestId will be returned by the Service. The status can be polled periodically. The status Async polling is using standards defined at - https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md#asynchronous-operations. Use the OperationsStatus URI provided in Azure-AsyncOperation header, the duration will be specified in retry-after header. Once the operation gets to terminal state - Succeeded | Failed, then the URI will change to Get URI and full details can be checked. \n Any change in the filters will be applicable to the future quota assignments, existing quota allocated to subscriptions from the GroupQuotas remains unchanged.", + "operationId": "GroupQuotas_Update", + "x-ms-examples": { + "GroupQuotas_Patch_Request_ForCompute": { + "$ref": "./examples/GroupQuotas/PatchGroupQuotas.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": " GroupQuotasPatchRequestBody", + "in": "body", + "description": "The GroupQuotas Patch Request.", + "schema": { + "$ref": "#/definitions/GroupQuotasEntityPatch" + } + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotasEntity" + } + }, + "202": { + "description": "Request Accepted", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "default": { + "description": "Bad Request", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "GroupQuotas" + ], + "summary": "Gets GroupQuotas for the name passed.", + "description": "Gets the GroupQuotas for the name passed. It will return the GroupQuotas properties only. The details on group quota can be access from the group quota APIs.", + "operationId": "GroupQuotas_Get", + "x-ms-examples": { + "GroupQuotas_Get_Request_ForCompute": { + "$ref": "./examples/GroupQuotas/GetGroupQuotas.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotasEntity" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "GroupQuotas" + ], + "summary": "Deletes GroupQuotas for the name passed.", + "description": "Deletes the GroupQuotas for the name passed. All the remaining shareQuota in the GroupQuotas will be lost.", + "operationId": "GroupQuotas_Delete", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "GroupQuotas_Delete_Request_ForCompute": { + "$ref": "./examples/GroupQuotas/DeleteGroupQuotas.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Request Accepted", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "204": { + "description": "No Content." + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas": { + "get": { + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "tags": [ + "GroupQuotas" + ], + "summary": "Lists GroupQuotas for the scope passed.", + "description": "Lists GroupQuotas for the scope passed. It will return the GroupQuotas QuotaEntity properties only.The details on group quota can be access from the group quota APIs.", + "operationId": "GroupQuotas_List", + "x-ms-examples": { + "GroupQuotas_List_Request_ForCompute": { + "$ref": "./examples/GroupQuotas/GetGroupQuotasList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotaList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/subscriptions/{subscriptionId}": { + "put": { + "tags": [ + "GroupQuotasSubscriptions" + ], + "summary": "Adds subscription to the GroupQuotas.", + "description": "Adds a subscription to GroupQuotas. The subscriptions will be validated based on the additionalAttributes defined in the GroupQuota. The additionalAttributes works as filter for the subscriptions, which can be included in the GroupQuotas. The request's TenantId is validated against the subscription's TenantId.", + "operationId": "GroupQuotaSubscriptions_CreateOrUpdate", + "x-ms-examples": { + "GroupQuotaSubscriptions_Put_Subscriptions": { + "$ref": "./examples/GroupQuotasSubscriptions/PutGroupQuotasSubscription.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK, Create or Update", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionId" + } + }, + "201": { + "description": "Request Accepted, Create or Update", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers. New guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#131-resource-based-long-running-operations-relo", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/LROResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "GroupQuotasSubscriptions" + ], + "summary": "Updates the GroupQuotas with the subscription to add to the subscriptions list.", + "description": "Updates the GroupQuotas with the subscription to add to the subscriptions list. The subscriptions will be validated if additionalAttributes are defined in the GroupQuota. The request's TenantId is validated against the subscription's TenantId.", + "operationId": "GroupQuotaSubscriptions_Update", + "x-ms-examples": { + "GroupQuotaSubscriptions_Patch_Subscriptions": { + "$ref": "./examples/GroupQuotasSubscriptions/PatchGroupQuotasSubscription.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionId" + } + }, + "202": { + "description": "Request Accepted", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "default": { + "description": "Error response", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "GroupQuotasSubscriptions" + ], + "summary": "Removes the subscription from GroupQuotas.", + "description": "Removes the subscription from GroupQuotas. The request's TenantId is validated against the subscription's TenantId.", + "operationId": "GroupQuotaSubscriptions_Delete", + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "GroupQuotaSubscriptions_Delete_Subscriptions": { + "$ref": "./examples/GroupQuotasSubscriptions/DeleteGroupQuotaSubscriptions.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Request Accepted", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "204": { + "description": "No Content." + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "GroupQuotasSubscriptions" + ], + "summary": "Returns the subscriptionId along with its provisioning state for being associated with the GroupQuotas.", + "description": "Returns the subscriptionIds along with its provisioning state for being associated with the GroupQuota. If the subscription is not a member of GroupQuota, it will return 404, else 200.", + "operationId": "GroupQuotaSubscriptions_Get", + "x-ms-examples": { + "GroupQuotaSubscriptions_Get_Subscriptions": { + "$ref": "./examples/GroupQuotasSubscriptions/GetGroupQuotaSubscriptions.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionId" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/subscriptions": { + "get": { + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "tags": [ + "GroupQuotasSubscriptions" + ], + "summary": "Returns a list of the subscriptionIds for the GroupQuotas.", + "description": "Returns a list of the subscriptionIds associated with the GroupQuotas.", + "operationId": "GroupQuotaSubscriptions_List", + "x-ms-examples": { + "GroupQuotaSubscriptions_List_Subscriptions": { + "$ref": "./examples/GroupQuotasSubscriptions/ListGroupQuotaSubscriptions.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionIdList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/subscriptionRequests": { + "get": { + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "tags": [ + "GroupQuotaSubscriptionRequests" + ], + "summary": "List the status of all requests to add subscriptionIds to the GroupQuotasEntity.", + "description": "List API to check the status of a subscriptionId requests by requestId. Request history is maintained for 1 year.", + "operationId": "GroupQuotaSubscriptionRequests_List", + "x-ms-examples": { + "GroupQuotaSubscriptionRequests_List": { + "$ref": "./examples/SubscriptionRequests/SubscriptionRequests_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success, with the details of the subscriptionId request.", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionRequestStatusList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/subscriptionRequests/{requestId}": { + "get": { + "tags": [ + "GroupQuotaSubscriptionRequests" + ], + "summary": "Get the status of a single subscriptionId request by requestId. The Async pattern will be used, if we determine the request is taking longer, else it can return 200 response as response to the subscription add API call.", + "description": "Get API to check the status of a subscriptionIds request by requestId. Use the polling API - OperationsStatus URI specified in Azure-AsyncOperation header field, with retry-after duration in seconds to check the intermediate status. This API provides the finals status with the request details and status.", + "operationId": "GroupQuotaSubscriptionRequests_Get", + "x-ms-examples": { + "GroupQuotaSubscriptionRequests_Get": { + "$ref": "./examples/SubscriptionRequests/SubscriptionRequests_Get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/RequestId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success, with the details of the subscriptionId request.", + "schema": { + "$ref": "#/definitions/GroupQuotaSubscriptionRequestStatus" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/resourceProviders/{resourceProviderName}/groupQuotaLimits/{location}": { + "patch": { + "tags": [ + "GroupQuotaLimits" + ], + "summary": "Create the GroupQuota requests for a specific ResourceProvider/Location/Resource.", + "description": "Create the GroupQuota requests for a specific ResourceProvider/Location/Resource. The resourceName properties are specified in the request body. Only 1 resource quota can be requested. Please note that patch request creates a new groupQuota request.\nUse the polling API - OperationsStatus URI specified in Azure-AsyncOperation header field, with retry-after duration in seconds to check the intermediate status. This API provides the finals status with the request details and status.", + "operationId": "GroupQuotaLimitsRequest_Update", + "x-ms-examples": { + "GroupQuotaLimitsRequests_Update": { + "$ref": "./examples/GroupQuotaLimitsRequests/PatchGroupQuotaLimitsRequests-Compute.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "groupQuotaRequest", + "in": "body", + "description": "The GroupQuotaRequest body details for specific resourceProvider/location/resources.", + "schema": { + "$ref": "#/definitions/GroupQuotaLimitList" + } + } + ], + "responses": { + "200": { + "description": "Success, with the details of the group quota request.", + "schema": { + "$ref": "#/definitions/GroupQuotaLimitList" + } + }, + "202": { + "description": "Request Accepted, Create or Update", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers. New guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#131-resource-based-long-running-operations-relo", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "GroupQuotaLimits" + ], + "summary": "Gets the GroupQuotaLimits for the specified resource provider and location for resource names passed in $filter=resourceName eq {SKU}.", + "description": "Gets the GroupQuotaLimits for the specified resource provider and location for resource names passed in $filter=resourceName eq {SKU}.", + "operationId": "GroupQuotaLimits_List", + "x-ms-examples": { + "GroupQuotaLimits_Get_Request_ForCompute": { + "$ref": "./examples/GroupQuotaLimits/ListGroupQuotaLimits-Compute.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/GroupQuotaLimitList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/groupQuotaRequests/{requestId}": { + "get": { + "tags": [ + "GroupQuotaLimitRequest" + ], + "summary": "Get the status of a single GroupQuota request by requestId.", + "description": "Get API to check the status of a GroupQuota request by requestId.", + "operationId": "GroupQuotaLimitsRequest_Get", + "x-ms-examples": { + "GroupQuotaLimitsRequests_Get": { + "$ref": "./examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_Get.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/RequestId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success, with the details of the group quota request.", + "schema": { + "$ref": "#/definitions/SubmittedResourceRequestStatus" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/resourceProviders/{resourceProviderName}/groupQuotaRequests": { + "get": { + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "tags": [ + "GroupQuotaLimitRequest" + ], + "summary": "Get the status of a single GroupQuota request by requestId.", + "description": "Get API to check the status of a GroupQuota request by requestId.", + "operationId": "GroupQuotaLimitsRequest_List", + "x-ms-examples": { + "GroupQuotaLimitsRequest_List": { + "$ref": "./examples/GroupQuotaLimitsRequests/GroupQuotaLimitsRequests_List.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FilterResourceAndLocationInQuery" + } + ], + "responses": { + "200": { + "description": "Success, with the details of the group quota request.", + "schema": { + "$ref": "#/definitions/SubmittedResourceRequestStatusList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/subscriptions/{subscriptionId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/resourceProviders/{resourceProviderName}/quotaAllocations/{location}": { + "patch": { + "tags": [ + "SubscriptionQuotaAllocation" + ], + "summary": "Request to assign quota from group quota to a specific Subscription. This request will use Asynchronous pattern with 202 response and status polling API.", + "description": "Request to assign quota from group quota to a specific Subscription. The assign GroupQuota to subscriptions or reduce the quota allocated to subscription to give back the unused quota ( quota >= usages) to the groupQuota. So, this API can be used to assign Quota to subscriptions and assign back unused quota to group quota, which can be assigned to another subscriptions in the GroupQuota. User can collect unused quotas from multiple subscriptions within the groupQuota and assign the groupQuota to the subscription, where it's needed.", + "operationId": "GroupQuotaSubscriptionAllocationRequest_Update", + "x-ms-examples": { + "SubscriptionQuotaAllocation_Patch_Request_ForCompute": { + "$ref": "./examples/SubscriptionQuotaAllocationRequests/PatchSubscriptionQuotaAllocationRequest-Compute.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "allocateQuotaRequest", + "in": "body", + "description": "Quota requests payload.", + "required": true, + "schema": { + "$ref": "#/definitions/SubscriptionQuotaAllocationsList" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SubscriptionQuotaAllocationsList" + } + }, + "202": { + "description": "Request Accepted", + "headers": { + "Retry-After": { + "description": "The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation.", + "type": "integer", + "format": "int64" + }, + "Location": { + "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", + "type": "string" + }, + "Azure-AsyncOperation": { + "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", + "type": "string" + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "get": { + "tags": [ + "SubscriptionQuotaAllocation" + ], + "summary": "Gets all the quota allocated to a subscription for the specified resource provider and location for resource names passed in $filter=resourceName eq {SKU}.", + "description": "Gets all the quota allocated to a subscription for the specified resource provider and location for resource names passed in $filter=resourceName eq {SKU}. This will include the GroupQuota and total quota allocated to the subscription. Only the Group quota allocated to the subscription can be allocated back to the MG Group Quota.", + "operationId": "GroupQuotaSubscriptionAllocation_List", + "x-ms-examples": { + "SubscriptionQuotaAllocation_List_ForCompute": { + "$ref": "./examples/SubscriptionQuotaAllocation/SubscriptionQuotaAllocation_List-Compute.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SubscriptionQuotaAllocationsList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/subscriptions/{subscriptionId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/resourceProviders/{resourceProviderName}/quotaAllocationRequests/{allocationId}": { + "get": { + "tags": [ + "SubscriptionQuotaAllocationRequest" + ], + "operationId": "GroupQuotaSubscriptionAllocationRequest_Get", + "summary": "Get the status of the quota allocation request for the subscriptionId.", + "description": "Get the quota allocation request status for the subscriptionId by allocationId.", + "x-ms-examples": { + "SubscriptionQuotaAllocationRequests_Get_Request_ForCompute": { + "$ref": "./examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_Get-Compute.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "#/parameters/AllocationId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/QuotaAllocationRequestStatus" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/subscriptions/{subscriptionId}/providers/Microsoft.Quota/groupQuotas/{groupQuotaName}/resourceProviders/{resourceProviderName}/quotaAllocationRequests": { + "get": { + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "tags": [ + "SubscriptionQuotaAllocationRequest" + ], + "summary": "Get all the quotaAllocationRequests for a resourceProvider/location.", + "description": "Get all the quotaAllocationRequests for a resourceProvider/location. The filter paramter for location is required.", + "operationId": "GroupQuotaSubscriptionAllocationRequest_List", + "x-ms-examples": { + "SubscriptionQuotaAllocation_List_Request_ForCompute": { + "$ref": "./examples/SubscriptionQuotaAllocationRequests/SubscriptionQuotaAllocationRequests_List-Compute.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ManagementGroupId" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/GroupQuotaName" + }, + { + "$ref": "#/parameters/ResourceProviderName" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FilterLocationInQuery" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/QuotaAllocationRequestStatusList" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "RequestState": { + "description": "Request status.", + "enum": [ + "Accepted", + "Created", + "Invalid", + "Succeeded", + "Failed", + "InProgress", + "Canceled" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "name": "RequestState", + "modelAsString": true + } + }, + "QuotaAllocationRequestStatus": { + "type": "object", + "description": "The subscription quota allocation status.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "x-ms-client-flatten": true, + "properties": { + "requestedResource": { + "$ref": "#/definitions/QuotaAllocationRequestBase" + }, + "requestSubmitTime": { + "description": "The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/RequestState" + }, + "faultCode": { + "type": "string", + "description": "Details of the failure.", + "readOnly": true + } + } + } + } + }, + "QuotaAllocationRequestStatusList": { + "type": "object", + "description": "List of QuotaAllocation Request Status", + "properties": { + "value": { + "type": "array", + "description": "List of QuotaAllocation Request Status", + "items": { + "$ref": "#/definitions/QuotaAllocationRequestStatus" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "LROResponse": { + "type": "object", + "description": "The provisioning state for the operation.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/RequestState" + } + } + } + } + }, + "GroupQuotaRequestBase": { + "type": "object", + "description": "The new GroupQuota limit requested.", + "properties": { + "properties": { + "type": "object", + "x-ms-client-flatten": true, + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "The new quota limit for the subscription. The incremental quota will be allocated from pre-approved group quota." + }, + "name": { + "type": "object", + "x-ms-client-flatten": true, + "readOnly": true, + "description": "Name of the resource provided by the resource provider. This property is already included in the request URI, so it is a readonly property returned in the response.", + "properties": { + "value": { + "description": "Resource name.", + "type": "string", + "readOnly": true + }, + "localizedValue": { + "description": "Resource display name.", + "type": "string", + "readOnly": true + } + } + }, + "region": { + "$ref": "#/definitions/RegionScope" + }, + "comments": { + "description": "GroupQuota Request comments and details for request. This is optional paramter to provide more details related to the requested resource.", + "type": "string" + } + } + } + } + }, + "QuotaAllocationRequestBase": { + "type": "object", + "description": "The new quota request allocated to subscription.", + "properties": { + "properties": { + "type": "object", + "x-ms-client-flatten": true, + "properties": { + "limit": { + "type": "integer", + "format": "int64", + "description": "The new quota limit for the subscription. The incremental quota will be allocated from pre-approved group quota." + }, + "name": { + "type": "object", + "x-ms-client-flatten": true, + "description": "Name of the resource provided by the resource provider. This property is already included in the request URI, so it is a readonly property returned in the response.", + "readOnly": true, + "properties": { + "value": { + "description": "Resource name.", + "type": "string", + "readOnly": true + }, + "localizedValue": { + "description": "Resource display name.", + "type": "string", + "readOnly": true + } + } + }, + "region": { + "type": "string", + "description": "The location for which the subscription is allocated" + } + } + } + } + }, + "AllocatedToSubscription": { + "type": "object", + "description": "SubscriptionIds and quota allocated to subscriptions from the GroupQuota.", + "properties": { + "subscriptionId": { + "type": "string", + "description": "An Azure subscriptionId." + }, + "quotaAllocated": { + "type": "integer", + "format": "int64", + "description": "The amount of quota allocated to this subscriptionId from the GroupQuotasEntity." + } + } + }, + "AllocatedQuotaToSubscriptionList": { + "type": "object", + "description": "Quota allocated to subscriptions", + "properties": { + "value": { + "type": "array", + "description": "List of Group Quota Limit allocated to subscriptions.", + "items": { + "$ref": "#/definitions/AllocatedToSubscription" + } + } + } + }, + "GroupQuotaLimit": { + "type": "object", + "description": "Group Quota limit.", + "properties": { + "properties": { + "description": "Group Quota properties for the specified resource.", + "allOf": [ + { + "$ref": "#/definitions/GroupQuotaDetails" + } + ] + } + } + }, + "RegionScope": { + "description": "Location/Azure region for the quota requested for resource.", + "type": "string" + }, + "GroupQuotaDetails": { + "type": "object", + "description": "Group Quota details.", + "properties": { + "resourceName": { + "type": "string", + "description": "The resource name, such as SKU name." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "The current Group Quota Limit at the parentId level." + }, + "comment": { + "description": "Any comment related to quota request.", + "type": "string" + }, + "unit": { + "description": " The usages units, such as Count and Bytes. When requesting quota, use the **unit** value returned in the GET response in the request body of your PUT operation.", + "type": "string", + "readOnly": true + }, + "name": { + "type": "object", + "x-ms-client-flatten": true, + "readOnly": true, + "description": "Name of the resource provided by the resource provider. This property is already included in the request URI, so it is a readonly property returned in the response.", + "properties": { + "value": { + "description": "Resource name.", + "type": "string", + "readOnly": true + }, + "localizedValue": { + "description": "Resource display name.", + "type": "string", + "readOnly": true + } + } + }, + "availableLimit": { + "type": "integer", + "format": "int64", + "readOnly": true, + "description": "The available Group Quota Limit at the MG level. This Group quota can be allocated to subscription(s)." + }, + "allocatedToSubscriptions": { + "readOnly": true, + "$ref": "#/definitions/AllocatedQuotaToSubscriptionList" + } + } + }, + "GroupQuotaLimitList": { + "type": "object", + "description": "List of Group Quota Limit details.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/RequestState" + }, + "value": { + "type": "array", + "description": "List of Group Quota Limit details.", + "items": { + "$ref": "#/definitions/GroupQuotaLimit" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "GroupQuotaSubscriptionRequestStatus": { + "type": "object", + "description": "The new quota limit request status.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "string", + "description": "The subscription Id" + }, + "requestSubmitTime": { + "description": "The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ", + "type": "string", + "format": "date-time" + }, + "provisioningState": { + "description": "Status of this subscriptionId being associated with the GroupQuotasEntity.", + "readOnly": true, + "$ref": "#/definitions/RequestState" + } + } + } + } + }, + "GroupQuotaSubscriptionRequestStatusList": { + "type": "object", + "description": "List of GroupQuotaSubscriptionRequests Status", + "properties": { + "value": { + "type": "array", + "description": "List of GroupQuotaSubscriptionRequests Status", + "items": { + "$ref": "#/definitions/GroupQuotaSubscriptionRequestStatus" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "GroupQuotaSubscriptionId": { + "type": "object", + "description": "This represents a Azure subscriptionId that is associated with a GroupQuotasEntity.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "subscriptionId": { + "description": "An Azure subscriptionId.", + "type": "string" + }, + "provisioningState": { + "description": "Status of this subscriptionId being associated with the GroupQuotasEntity.", + "readOnly": true, + "$ref": "#/definitions/RequestState" + } + } + } + } + }, + "GroupQuotaSubscriptionIdList": { + "type": "object", + "description": "List of GroupQuotaSubscriptionIds", + "properties": { + "value": { + "type": "array", + "description": "List of GroupQuotaSubscriptionIds", + "items": { + "$ref": "#/definitions/GroupQuotaSubscriptionId" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "SubscriptionQuotaAllocationRequestList": { + "type": "object", + "description": "List of Allocated Group Quota to the subscriptions.", + "properties": { + "value": { + "type": "array", + "description": "Allocated Group Quota to subscriptions.", + "items": { + "$ref": "#/definitions/QuotaAllocationRequestStatus" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "SubscriptionGroupQuotaAssignment": { + "type": "object", + "description": "MGId the source of group quota.", + "properties": { + "groupQuotaId": { + "type": "string", + "description": "The group quota id of the quota source." + }, + "quotaAllocated": { + "type": "integer", + "format": "int64", + "description": "The amount of quota allocated to this subscriptionId from the quota source." + } + } + }, + "SubscriptionQuotaAllocations": { + "type": "object", + "description": "Quota allocated to a subscription for the specific Resource Provider, Location, ResourceName. This will include the GroupQuota and total quota allocated to the subscription. Only the Group quota allocated to the subscription can be allocated back to the MG Group Quota.", + "properties": { + "properties": { + "description": "Quota properties for the specified resource.", + "allOf": [ + { + "$ref": "#/definitions/SubscriptionQuotaDetails" + } + ] + } + } + }, + "SubscriptionQuotaDetails": { + "type": "object", + "description": "Subscription Quota details.", + "properties": { + "resourceName": { + "type": "string", + "description": "The resource name, such as SKU name." + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "The total quota limit for the subscription.", + "readOnly": false + }, + "shareableQuota": { + "type": "integer", + "format": "int64", + "description": "The shareable quota for the subscription.", + "readOnly": true + }, + "name": { + "type": "object", + "x-ms-client-flatten": true, + "readOnly": true, + "description": "Name of the resource provided by the resource provider. This property is already included in the request URI, so it is a readonly property returned in the response.", + "properties": { + "value": { + "description": "Resource name.", + "type": "string", + "readOnly": true + }, + "localizedValue": { + "description": "Resource display name.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "SubmittedResourceRequestStatus": { + "type": "object", + "description": "Status of a single GroupQuota request.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "requestedResource": { + "description": "Requested Resource.", + "$ref": "#/definitions/GroupQuotaRequestBase" + }, + "requestSubmitTime": { + "description": "The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/RequestState" + }, + "faultCode": { + "type": "string", + "description": "Details of the failure.", + "readOnly": true + } + } + } + } + }, + "SubmittedResourceRequestStatusList": { + "type": "object", + "description": "Share Quota Entity list.", + "properties": { + "value": { + "type": "array", + "description": "Subscription groupQuotaRequests list.", + "items": { + "$ref": "#/definitions/SubmittedResourceRequestStatus" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "SubscriptionQuotaAllocationsStatusList": { + "type": "object", + "description": "Subscription quota allocation requests status list.", + "properties": { + "value": { + "type": "array", + "description": "Subscription quota allocation status list.", + "items": { + "$ref": "#/definitions/SubmittedResourceRequestStatus" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "SubscriptionQuotaAllocationsList": { + "type": "object", + "description": "Subscription quota list.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "type": "object", + "properties": { + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/RequestState" + }, + "value": { + "type": "array", + "description": "Subscription quota list.", + "items": { + "$ref": "#/definitions/SubscriptionQuotaAllocations" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "ResourceBaseRequest": { + "type": "object", + "description": "Resource definition with the requested quota.", + "properties": { + "resourceName": { + "type": "string", + "description": "The resource name, such as SKU name.", + "readOnly": true + }, + "limit": { + "type": "integer", + "description": "Quota requested for the resource.", + "format": "int64" + }, + "unit": { + "type": "string", + "readOnly": true, + "description": "Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds, Percent, CountPerSecond, BytesPerSecond. Based on - https://armwiki.azurewebsites.net/api_contracts/UsagesAPIContract.html?q=usages . Different RPs may have different units, Count, type as int64 should work for most of the integer values." + } + } + }, + "ResourceUsageList": { + "type": "object", + "description": "List of resource usages and quotas for GroupQuota.", + "properties": { + "value": { + "type": "array", + "description": "List of resource usages at Group Quotas.", + "items": { + "$ref": "#/definitions/ResourceUsages" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + }, + "ResourceUsages": { + "type": "object", + "description": "Resource details with usages and GroupQuota.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/GroupQuotaUsagesBase" + } + } + }, + "GroupQuotaUsagesBase": { + "type": "object", + "description": "Resource details with usages and GroupQuota.", + "properties": { + "name": { + "type": "object", + "x-ms-client-flatten": true, + "description": "Name of the resource provided by the resource provider. This property is already included in the request URI, so it is a readonly property returned in the response.", + "properties": { + "value": { + "description": "Resource name.", + "type": "string" + }, + "localizedValue": { + "description": "Resource display name.", + "type": "string", + "readOnly": true + } + } + }, + "limit": { + "type": "integer", + "description": "Quota/limits for the resource.", + "format": "int64" + }, + "usages": { + "type": "integer", + "description": "Usages for the resource.", + "format": "int64" + }, + "unit": { + "type": "string", + "readOnly": true, + "description": "Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds, Percent, CountPerSecond, BytesPerSecond. Based on - https://armwiki.azurewebsites.net/api_contracts/UsagesAPIContract.html?q=usages . Different RPs may have different units, Count, type as int64 should work for most of the integer values." + } + } + }, + "GroupQuotasEntityBase": { + "type": "object", + "description": "Properties and filters for ShareQuota. The request parameter is optional, if there are no filters specified.", + "properties": { + "displayName": { + "description": "Display name of the GroupQuota entity.", + "type": "string" + }, + "provisioningState": { + "description": "Provisioning state of the operation.", + "readOnly": true, + "$ref": "#/definitions/RequestState" + } + } + }, + "GroupQuotasEntityBasePatch": { + "type": "object", + "description": "Properties and filters for ShareQuota. The request parameter is optional, if there are no filters specified.", + "properties": { + "displayName": { + "description": "Display name of the GroupQuota entity.", + "type": "string" + }, + "provisioningState": { + "description": "Provisioning state of the operation.", + "readOnly": true, + "$ref": "#/definitions/RequestState" + } + } + }, + "GroupQuotasEntityPatch": { + "type": "object", + "description": "Properties and filters for ShareQuota. The request parameter is optional, if there are no filters specified.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "title": "Properties", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/GroupQuotasEntityBasePatch" + } + ] + } + } + }, + "GroupQuotasEntity": { + "type": "object", + "description": "Properties and filters for ShareQuota. The request parameter is optional, if there are no filters specified.", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + }, + { + "type": "object", + "properties": { + "properties": { + "title": "Properties", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/GroupQuotasEntityBase" + } + ] + } + } + } + ] + }, + "GroupQuotaList": { + "type": "object", + "description": "List of Group Quotas at MG level.", + "properties": { + "value": { + "type": "array", + "description": "List of Group Quotas at MG level.", + "items": { + "$ref": "#/definitions/GroupQuotasEntity" + } + }, + "nextLink": { + "description": "The URL to use for getting the next set of results.", + "type": "string", + "readOnly": true + } + } + } + }, + "parameters": { + "RequestId": { + "name": "requestId", + "in": "path", + "required": true, + "type": "string", + "description": "Request Id.", + "x-ms-parameter-location": "method" + }, + "ResourceName": { + "name": "resourceName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$", + "minLength": 3, + "maxLength": 63, + "description": "Resource name.", + "x-ms-parameter-location": "method" + }, + "AllocationId": { + "name": "allocationId", + "in": "path", + "required": true, + "type": "string", + "description": "Request Id.", + "x-ms-parameter-location": "method" + }, + "ManagementGroupId": { + "name": "managementGroupId", + "in": "path", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "description": "Management Group Id.", + "x-ms-parameter-location": "method" + }, + "GroupQuotaName": { + "name": "groupQuotaName", + "in": "path", + "required": true, + "pattern": "^[a-z][a-z0-9]*$", + "minLength": 3, + "maxLength": 63, + "type": "string", + "description": "The GroupQuota name. The name should be unique for the provided context tenantId/MgId.", + "x-ms-parameter-location": "method" + }, + "ResourceProviderName": { + "name": "resourceProviderName", + "in": "path", + "pattern": "^((?!-)[a-zA-Z0-9-]{1,63}(? Date: Wed, 15 Jan 2025 20:40:33 -0800 Subject: [PATCH 33/82] updating the cpsell json (#32157) Co-authored-by: Ravi Gautam --- cSpell.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cSpell.json b/cSpell.json index c79a9d455464..dbfc4cd51494 100644 --- a/cSpell.json +++ b/cSpell.json @@ -335,38 +335,38 @@ ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/DistributedAvailabilityGroups.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/DistributedAvailabilityGroups.json", "words": [ "freemium" ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/ManagedInstances.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstances.json", "words": [ "freemium" ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/ServerTrustCertificates.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ServerTrustCertificates.json", "words": [ "freemium" ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/ManagedInstanceDtcs.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstanceDtcs.json", "words": [ "msdtcdns", "msdtc's" ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/TimeZones.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/TimeZones.json", "words": [ "freemium" ] }, { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/preview/**/ElasticPools.json", + "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ElasticPools.json", "words": [ "PRMS" ] From f3ac3c7d3f3a312364ed4db78744e20fea1fd235 Mon Sep 17 00:00:00 2001 From: Rajat Rastogi Date: Wed, 15 Jan 2025 23:02:51 -0800 Subject: [PATCH 34/82] Release communication email 2025 01 15 preview (#32084) * Copy files from preview/2024-07-01-preview Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to preview/2025-01-15-preview Updated the API version from preview/2024-07-01-preview to preview/2025-01-15-preview. * Added tag for 2025-01-15-preview in readme file * Add new sender display name optional property --- cSpell.json | 1 + .../CommunicationServicesEmail.json | 395 ++++++++++++++++++ ...tionStatusReturnsFailedTerminalStatus.json | 20 + ...erationStatusReturnsNonTerminalStatus.json | 19 + ...ionStatusReturnsSuccessTerminalStatus.json | 16 + .../examples/SendEmail.json | 91 ++++ .../communication/data-plane/Email/readme.md | 13 +- 7 files changed, 554 insertions(+), 1 deletion(-) create mode 100644 specification/communication/data-plane/Email/preview/2025-01-15-preview/CommunicationServicesEmail.json create mode 100644 specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsFailedTerminalStatus.json create mode 100644 specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsNonTerminalStatus.json create mode 100644 specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsSuccessTerminalStatus.json create mode 100644 specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/SendEmail.json diff --git a/cSpell.json b/cSpell.json index dbfc4cd51494..9eae17676637 100644 --- a/cSpell.json +++ b/cSpell.json @@ -4,6 +4,7 @@ "words": [ "authnotrequired", "azsdk", + "communicationservices", "confidentialledger", "Creds", "fixdate", diff --git a/specification/communication/data-plane/Email/preview/2025-01-15-preview/CommunicationServicesEmail.json b/specification/communication/data-plane/Email/preview/2025-01-15-preview/CommunicationServicesEmail.json new file mode 100644 index 000000000000..f15b2e763fa3 --- /dev/null +++ b/specification/communication/data-plane/Email/preview/2025-01-15-preview/CommunicationServicesEmail.json @@ -0,0 +1,395 @@ +{ + "swagger": "2.0", + "info": { + "title": "EmailClient", + "description": "Azure Communication Email Service", + "version": "2025-01-15-preview" + }, + "paths": { + "/emails/operations/{operationId}": { + "get": { + "tags": [ + "EmailGetSendResult" + ], + "summary": "Gets the status of the email send operation.", + "operationId": "Email_GetSendResult", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "operationId", + "description": "ID of the long running operation (GUID) returned from a previous call to send email", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "default": { + "description": "Error", + "headers": { + "x-ms-error-code": { + "description": "Error code - this will be the same as the code in the error property in the response body.", + "type": "string" + } + }, + "schema": { + "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + } + }, + "200": { + "description": "Message status was successfully retrieved.", + "headers": { + "retry-after": { + "description": "This header will only be present when the status is a non-terminal status. It indicates the minimum amount of time in seconds to wait before polling for operation status again.", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/EmailSendResult" + } + } + }, + "x-ms-examples": { + "Get Message Status FailedTerminalStatus": { + "$ref": "./examples/GetOperationStatusReturnsFailedTerminalStatus.json" + }, + "Get Message Status NonTerminalStatus": { + "$ref": "./examples/GetOperationStatusReturnsNonTerminalStatus.json" + }, + "Get Message Status SuccessTerminalStatus": { + "$ref": "./examples/GetOperationStatusReturnsSuccessTerminalStatus.json" + } + } + } + }, + "/emails:send": { + "post": { + "tags": [ + "EmailSend" + ], + "summary": "Queues an email message to be sent to one or more recipients", + "operationId": "Email_Send", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "header", + "name": "Operation-Id", + "description": "This is the ID provided by the customer to identify the long running operation. If an ID is not provided by the customer, the service will generate one.", + "type": "string", + "required": false, + "format": "uuid" + }, + { + "in": "header", + "name": "x-ms-client-request-id", + "description": "Tracking ID sent with the request to help with debugging.", + "type": "string", + "required": false, + "format": "uuid", + "x-ms-client-name": "ClientRequestId" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "emailMessage", + "description": "Message payload for sending an email", + "required": true, + "x-ms-client-name": "message", + "schema": { + "$ref": "#/definitions/EmailMessage" + } + } + ], + "responses": { + "default": { + "description": "Error", + "headers": { + "x-ms-error-code": { + "description": "Error code - this will be the same as the code in the error property in the response body.", + "type": "string" + } + }, + "schema": { + "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + } + }, + "202": { + "description": "The service has accepted the request and will start processing the message later. It will return 'Accepted' immediately and include an 'Operation-Location' header. Client side should further query the operation/message status using the URL specified in 'Operation-Location' header. Once the send operation has succeeded, you can get additional status about email delivery through either Azure Monitor or Event Grid events (for events reference, please refer to: https://learn.microsoft.com/en-us/azure/event-grid/communication-services-email-events)", + "headers": { + "Operation-Location": { + "description": "Location url of where to poll the status of this operation from.", + "type": "string" + }, + "retry-after": { + "description": "This header will only be present when the operation status is a non-terminal status. It indicates the minimum amount of time in seconds to wait before polling for operation status again.", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/EmailSendResult" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples": { + "Send Email": { + "$ref": "./examples/SendEmail.json" + } + } + } + } + }, + "definitions": { + "EmailSendResult": { + "description": "Status of the long running operation", + "required": [ + "id", + "status" + ], + "type": "object", + "properties": { + "id": { + "description": "The unique id of the operation. Use a UUID.", + "type": "string", + "example": "8540c0de-899f-5cce-acb5-3ec493af3800" + }, + "status": { + "description": "Status of operation.", + "enum": [ + "NotStarted", + "Running", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string", + "x-ms-enum": { + "name": "EmailSendStatus", + "modelAsString": true + } + }, + "error": { + "description": "Error details when status is a non-success terminal state.", + "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorDetail" + } + } + }, + "EmailMessage": { + "description": "Message payload for sending an email", + "required": [ + "senderAddress", + "content", + "recipients" + ], + "type": "object", + "properties": { + "headers": { + "description": "Custom email headers to be passed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "senderAddress": { + "description": "Sender email address from a verified domain.", + "type": "string", + "example": "info@contoso.com" + }, + "senderDisplayName": { + "description": "Email display name of the sender.", + "type": "string", + "example": "Contoso Info" + }, + "content": { + "description": "Email content to be sent.", + "$ref": "#/definitions/EmailContent" + }, + "recipients": { + "description": "Recipients for the email.", + "$ref": "#/definitions/EmailRecipients" + }, + "attachments": { + "description": "List of attachments. Please note that we limit the total size of an email request (which includes both regular and inline attachments) to 10MB.", + "type": "array", + "items": { + "$ref": "#/definitions/EmailAttachment" + } + }, + "replyTo": { + "description": "Email addresses where recipients' replies will be sent to.", + "type": "array", + "items": { + "$ref": "#/definitions/EmailAddress" + } + }, + "userEngagementTrackingDisabled": { + "description": "Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.", + "type": "boolean" + } + } + }, + "EmailAddress": { + "description": "An object representing the email address and its display name", + "type": "object", + "required": [ + "address" + ], + "properties": { + "address": { + "description": "Email address.", + "type": "string", + "example": "abc@contoso.com" + }, + "displayName": { + "description": "Email display name.", + "type": "string", + "example": "abc" + } + } + }, + "EmailContent": { + "description": "Content of the email.", + "type": "object", + "required": [ + "subject" + ], + "properties": { + "subject": { + "description": "Subject of the email message", + "type": "string", + "example": "An exciting offer especially for you!" + }, + "plainText": { + "description": "Plain text version of the email message.", + "type": "string", + "example": "This exciting offer was created especially for you, our most loyal customer." + }, + "html": { + "description": "Html version of the email message.", + "type": "string", + "example": "Exciting offer!

This exciting offer was created especially for you, our most loyal customer.

" + } + } + }, + "EmailAttachment": { + "description": "Attachment to the email.", + "type": "object", + "required": [ + "name", + "contentType", + "contentInBase64" + ], + "properties": { + "name": { + "description": "Name of the attachment", + "type": "string", + "example": "attachment.pdf" + }, + "contentType": { + "description": "MIME type of the content being attached.", + "type": "string", + "example": "text/plain" + }, + "contentInBase64": { + "description": "Base64 encoded contents of the attachment", + "type": "string", + "format": "byte", + "example": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=" + }, + "contentId": { + "description": "Unique identifier (CID) to reference an inline attachment.", + "type": "string", + "example": "inline_image_id" + } + } + }, + "EmailRecipients": { + "description": "Recipients of the email", + "type": "object", + "required": [ + "to" + ], + "properties": { + "to": { + "description": "Email To recipients", + "type": "array", + "items": { + "$ref": "#/definitions/EmailAddress" + } + }, + "cc": { + "description": "Email CC recipients", + "type": "array", + "x-ms-client-name": "CC", + "items": { + "$ref": "#/definitions/EmailAddress" + } + }, + "bcc": { + "description": "Email BCC recipients", + "type": "array", + "x-ms-client-name": "BCC", + "items": { + "$ref": "#/definitions/EmailAddress" + } + } + } + } + }, + "parameters": { + "ApiVersionParameter": { + "in": "query", + "name": "api-version", + "description": "Version of API to invoke.", + "required": true, + "type": "string", + "x-ms-parameter-location": "client" + } + }, + "securityDefinitions": { + "Authorization": { + "type": "apiKey", + "name": "Authorization", + "in": "header", + "description": "An authentication string containing a signature generated using HMAC-SHA256 scheme." + } + }, + "security": [ + { + "Authorization": [] + } + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "description": "The communication resource, for example https://my-resource.communication.azure.com", + "required": true, + "type": "string", + "format": "url", + "in": "path", + "x-ms-skip-url-encoding": true, + "x-ms-parameter-location": "client" + } + ] + } +} diff --git a/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsFailedTerminalStatus.json b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsFailedTerminalStatus.json new file mode 100644 index 000000000000..61f13a297d67 --- /dev/null +++ b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsFailedTerminalStatus.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "endpoint": "https://contoso.westus.communications.azure.com", + "api-version": "2025-01-15-preview", + "authorization": "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=aaaa", + "operationId": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4" + }, + "responses": { + "200": { + "body": { + "id": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4", + "status": "Failed", + "error": { + "code": "EmailDropped", + "message": "Email was dropped after several attempts to deliver." + } + } + } + } +} diff --git a/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsNonTerminalStatus.json b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsNonTerminalStatus.json new file mode 100644 index 000000000000..780541fd1399 --- /dev/null +++ b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsNonTerminalStatus.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "endpoint": "https://contoso.westus.communications.azure.com", + "api-version": "2025-01-15-preview", + "authorization": "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=aaaa", + "operationId": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4" + }, + "responses": { + "200": { + "headers": { + "retry-after": "100" + }, + "body": { + "id": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4", + "status": "Running" + } + } + } +} diff --git a/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsSuccessTerminalStatus.json b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsSuccessTerminalStatus.json new file mode 100644 index 000000000000..5522ba9955bf --- /dev/null +++ b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/GetOperationStatusReturnsSuccessTerminalStatus.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "endpoint": "https://contoso.westus.communications.azure.com", + "api-version": "2025-01-15-preview", + "authorization": "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=aaaa", + "operationId": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4" + }, + "responses": { + "200": { + "body": { + "id": "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4", + "status": "Succeeded" + } + } + } +} diff --git a/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/SendEmail.json b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/SendEmail.json new file mode 100644 index 000000000000..24cf3475d71b --- /dev/null +++ b/specification/communication/data-plane/Email/preview/2025-01-15-preview/examples/SendEmail.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "endpoint": "https://contoso.westus.communications.azure.com", + "api-version": "2025-01-15-preview", + "x-ms-client-request-id": "1377af77-47e8-4fb3-8e84-5a848305daea", + "operation-id": "8540c0de-899f-5cce-acb5-3ec493af3800", + "authorization": "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=aaaa", + "emailMessage": { + "headers": { + "ClientCorrelationId": "123", + "ClientCustomHeaderName": "ClientCustomHeaderValue" + }, + "senderAddress": "abc@domain.com", + "senderDisplayName": "ABC", + "content": { + "subject": "An exciting offer especially for you!", + "plainText": "This exciting offer was created especially for you, our most loyal customer.", + "html": "Exciting offer!\"Company

This exciting offer was created especially for you, our most loyal customer.

" + }, + "recipients": { + "to": [ + { + "address": "john.doe@domain.com", + "displayName": "John Doe" + }, + { + "address": "jane.doe@domain2.com", + "displayName": "Jane Doe" + } + ], + "cc": [ + { + "address": "wendy@someotherdomain.com", + "displayName": "Wendy" + }, + { + "address": "jimmy@anotherdomain.com", + "displayName": "Jimmy Johns" + } + ], + "bcc": [ + { + "address": "bob@anotherdomain.com", + "displayName": "Bob" + }, + { + "address": "mail@yetanotherdomain.com", + "displayName": "Another DisplayName" + } + ] + }, + "attachments": [ + { + "name": "MyAttachment.pdf", + "contentType": "application/pdf", + "contentInBase64": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=" + }, + { + "name": "MyAttachment2.docx", + "contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "contentInBase64": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=" + }, + { + "name": "MyInlineImage.jpg", + "contentType": "image/jpeg", + "contentInBase64": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=", + "contentId": "my-inline-image" + } + ], + "replyTo": [ + { + "address": "contoso-support@contoso.com", + "displayName": "Contoso Support" + } + ], + "userEngagementTrackingDisabled": true + } + }, + "responses": { + "202": { + "headers": { + "Operation-Location": "https://contoso.westus.communications.azure.com//emails/operations/8540c0de-899f-5cce-acb5-3ec493af3800?api-version=2023-03-31", + "retry-after": "20" + }, + "body": { + "id": "8540c0de-899f-5cce-acb5-3ec493af3800", + "status": "Running" + } + } + } +} diff --git a/specification/communication/data-plane/Email/readme.md b/specification/communication/data-plane/Email/readme.md index 2ce9fc05de7c..18a6cbe0c1a3 100644 --- a/specification/communication/data-plane/Email/readme.md +++ b/specification/communication/data-plane/Email/readme.md @@ -26,7 +26,7 @@ These are the global settings for the communicationservices. ```yaml openapi-type: data-plane -tag: package-2024-07-01-preview +tag: package-2025-01-15-preview ``` ### Tag: package-2021-10-01-preview @@ -73,6 +73,17 @@ title: Azure Communication Services ``` +### Tag: package-2025-01-15-preview + +These settings apply only when `--tag=package-2025-01-15-preview` is specified on the command line. + +```yaml $(tag) == 'package-2025-01-15-preview' +input-file: + - preview/2025-01-15-preview/CommunicationServicesEmail.json +title: + Azure Communication Services +``` + --- # Code Generation From 7bc0f31bd47a5b9133dd71691146c8e97e00e96c Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Thu, 16 Jan 2025 15:21:12 +0800 Subject: [PATCH 35/82] [Liftrpinecone] update tspconfig (#31849) * updatetspconfig * updatetspconfig * Update client.tsp * Update cSpell.json * Update cSpell.json with new words and filename --- cSpell.json | 7 +++++++ .../liftrpinecone/Pinecone.VectorDb.Management/client.tsp | 6 ++++++ .../Pinecone.VectorDb.Management/tspconfig.yaml | 6 ++++++ 3 files changed, 19 insertions(+) create mode 100644 specification/liftrpinecone/Pinecone.VectorDb.Management/client.tsp diff --git a/cSpell.json b/cSpell.json index 9eae17676637..fab78f44aad7 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1848,6 +1848,13 @@ "words": [ "standbypool" ] + }, + { + "filename": "**/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml", + "words": [ + "liftrpinecone", + "pineconevectordb" + ] } ], "enableFiletypes": [ diff --git a/specification/liftrpinecone/Pinecone.VectorDb.Management/client.tsp b/specification/liftrpinecone/Pinecone.VectorDb.Management/client.tsp new file mode 100644 index 000000000000..bcf595289020 --- /dev/null +++ b/specification/liftrpinecone/Pinecone.VectorDb.Management/client.tsp @@ -0,0 +1,6 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Pinecone.VectorDb, "PineconeVectorDbMgmt", "python"); diff --git a/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml b/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml index 2c68eef605b1..09cc331ef772 100644 --- a/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml +++ b/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml @@ -16,6 +16,12 @@ options: clear-output-folder: true use-write-core: true namespace: "{package-dir}" + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-pineconevectordb" + package-name: "{package-dir}" + flavor: "azure" + generate-test: true + generate-sample: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From 5d4df31c99a4f72cca04f701777a973210b9f3cc Mon Sep 17 00:00:00 2001 From: sssharma24 <107450300+sssharma24@users.noreply.github.com> Date: Thu, 16 Jan 2025 02:07:21 -0800 Subject: [PATCH 36/82] =?UTF-8?q?Add=20properties=20as=20required=20for=20?= =?UTF-8?q?ipampool=20and=20body=20as=20required=20for=20put=20=E2=80=A6?= =?UTF-8?q?=20(#30701)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add properties as required for ipampool and body as required for put ipampool * update example --- .../preview/2024-01-01-preview/examples/IpamPools_Create.json | 3 ++- .../preview/2024-01-01-preview/ipAddressManager.json | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/examples/IpamPools_Create.json b/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/examples/IpamPools_Create.json index 3a0d3a303ab4..6e38f9cfc09d 100644 --- a/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/examples/IpamPools_Create.json +++ b/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/examples/IpamPools_Create.json @@ -6,7 +6,8 @@ "resourceGroupName": "rg1", "networkManagerName": "TestNetworkManager", "poolName": "TestPool", - "parameters": { + "body": { + "location": "eastus", "properties": { "description": "Test description.", "parentPoolName": "", diff --git a/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/ipAddressManager.json b/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/ipAddressManager.json index a8671d8dc658..7baae5a84a9d 100644 --- a/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/ipAddressManager.json +++ b/specification/network/resource-manager/Microsoft.Network/preview/2024-01-01-preview/ipAddressManager.json @@ -125,6 +125,7 @@ "in": "body", "name": "body", "description": "Pool resource object to create/update.", + "required": true, "schema": { "$ref": "#/definitions/IpamPool" } @@ -751,6 +752,9 @@ "IpamPool": { "description": "Instance of Pool resource.", "type": "object", + "required": [ + "properties" + ], "properties": { "properties": { "$ref": "#/definitions/IpamPoolProperties" From 983aefdeca2ae88e99c5def03f3ef61287d18876 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Thu, 16 Jan 2025 09:01:36 -0800 Subject: [PATCH 37/82] [cSpell.json] Ignore .github folder (#32189) --- cSpell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cSpell.json b/cSpell.json index fab78f44aad7..8ebd8c60d701 100644 --- a/cSpell.json +++ b/cSpell.json @@ -28,6 +28,7 @@ "ignorePaths": [ "**/examples/**", "**/package-lock.json", + ".github/**", "cSpell.json", "eng/**", "node_modules/**", From 279b2806f41efd7db3de2f923ac90051e3c121a8 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Thu, 16 Jan 2025 09:07:20 -0800 Subject: [PATCH 38/82] [tsp-client] Use contoso for acceptance tests, temporarily disable data-plane (#32187) --- .github/workflows/tsp-client-test.yaml | 6 ++---- .../tsp-client-tests/test/tsp-client.test.ts | 17 ++++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tsp-client-test.yaml b/.github/workflows/tsp-client-test.yaml index 15bf1c137367..ec54c29ad636 100644 --- a/.github/workflows/tsp-client-test.yaml +++ b/.github/workflows/tsp-client-test.yaml @@ -17,8 +17,7 @@ on: - eng/tools/tsconfig.json - eng/tools/tsp-client-tests/** - specification/common-types - - specification/keyvault - - specification/sphere + - specification/contosowidgetmanager workflow_dispatch: jobs: @@ -28,5 +27,4 @@ jobs: package: tsp-client-tests sparse-checkout-paths: | specification/common-types - specification/keyvault - specification/sphere + specification/contosowidgetmanager diff --git a/eng/tools/tsp-client-tests/test/tsp-client.test.ts b/eng/tools/tsp-client-tests/test/tsp-client.test.ts index 5a12f891ecb8..9b2e8fc455d6 100644 --- a/eng/tools/tsp-client-tests/test/tsp-client.test.ts +++ b/eng/tools/tsp-client-tests/test/tsp-client.test.ts @@ -15,8 +15,10 @@ async function npmExec(...args: string[]) { } async function convert(expect: ExpectStatic, readme: string) { + const resMan = readme.includes("resource-manager"); const specFolder = dirname(dirname(join(repoRoot, readme))); - const outputFolder = join(specFolder, "Test.TspClientConvert"); + const tspFolder = "Test.TspClientConvert" + (resMan ? ".Management" : ""); + const outputFolder = join(specFolder, tspFolder); try { await mkdir(outputFolder); @@ -35,7 +37,7 @@ async function convert(expect: ExpectStatic, readme: string) { readme, "-o", outputFolder, - readme.includes("resource-manager") ? "--arm" : "", + resMan ? "--arm" : "", ); expect(stdout).toContain("Converting"); @@ -59,7 +61,7 @@ async function convert(expect: ExpectStatic, readme: string) { } // Ensure outputFolder is deleted - expect(() => access(outputFolder)).rejects.toThrowError(); + await expect(() => access(outputFolder)).rejects.toThrowError(); } test.concurrent("Usage", async ({ expect }) => { @@ -69,10 +71,11 @@ test.concurrent("Usage", async ({ expect }) => { expect(exitCode).not.toBe(0); }); -test.concurrent("Convert keyvault/data-plane", async ({ expect }) => { - await convert(expect, "specification/keyvault/data-plane/readme.md"); +// Disabled since tsp-client is failing on data-plane +test.skip.concurrent("Convert contosowidgetmanager/data-plane", async ({ expect }) => { + await convert(expect, "specification/contosowidgetmanager/data-plane/readme.md"); }); -test.concurrent("Convert sphere/resource-manager", async ({ expect }) => { - await convert(expect, "specification/sphere/resource-manager/readme.md"); +test.concurrent("Convert contosowidgetmanager/resource-manager", async ({ expect }) => { + await convert(expect, "specification/contosowidgetmanager/resource-manager/readme.md"); }); From fb677c58a71d071582c465f4dedd25f41d6fc991 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 16 Jan 2025 10:41:17 -0800 Subject: [PATCH 39/82] Sync eng/common directory with azure-sdk-tools for PR 9529 (#31882) * Use -Mail for test resources local user lookup to support TME * Auto-select TME subscription based on user context --------- Co-authored-by: Ben Broderick Phillips --- eng/common/TestResources/New-TestResources.ps1 | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 2958ccc6628f..8a61b68c6b2e 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -244,10 +244,16 @@ try { $context = Get-AzContext } } else { - if ($currentSubcriptionId -ne 'faa080af-c1d8-40ad-9cce-e1a450ca5b57') { + if ($context.Tenant.Name -like '*TME*') { + if ($currentSubscriptionId -ne '4d042dc6-fe17-4698-a23f-ec6a8d1e98f4') { + Log "Attempting to select subscription 'Azure SDK Test Resources - TME (4d042dc6-fe17-4698-a23f-ec6a8d1e98f4)'" + $null = Select-AzSubscription -Subscription '4d042dc6-fe17-4698-a23f-ec6a8d1e98f4' -ErrorAction Ignore + # Update the context. + $context = Get-AzContext + } + } elseif ($currentSubcriptionId -ne 'faa080af-c1d8-40ad-9cce-e1a450ca5b57') { Log "Attempting to select subscription 'Azure SDK Developer Playground (faa080af-c1d8-40ad-9cce-e1a450ca5b57)'" $null = Select-AzSubscription -Subscription 'faa080af-c1d8-40ad-9cce-e1a450ca5b57' -ErrorAction Ignore - # Update the context. $context = Get-AzContext } @@ -261,6 +267,7 @@ try { 'faa080af-c1d8-40ad-9cce-e1a450ca5b57' = 'Azure SDK Developer Playground' 'a18897a6-7e44-457d-9260-f2854c0aca42' = 'Azure SDK Engineering System' '2cd617ea-1866-46b1-90e3-fffb087ebf9b' = 'Azure SDK Test Resources' + '4d042dc6-fe17-4698-a23f-ec6a8d1e98f4' = 'Azure SDK Test Resources - TME ' } # Print which subscription is currently selected. @@ -313,7 +320,8 @@ try { # Make sure the provisioner OID is set so we can pass it through to the deployment. if (!$ProvisionerApplicationId -and !$ProvisionerApplicationOid) { if ($context.Account.Type -eq 'User') { - $user = Get-AzADUser -UserPrincipalName $context.Account.Id + # Use -Mail as the lookup works in both corp and TME tenants + $user = Get-AzADUser -Mail $context.Account.Id $ProvisionerApplicationOid = $user.Id } elseif ($context.Account.Type -eq 'ServicePrincipal') { $sp = Get-AzADServicePrincipal -ApplicationId $context.Account.Id @@ -383,7 +391,8 @@ try { Write-Warning "The specified TestApplicationId '$TestApplicationId' will be ignored when -ServicePrincipalAutth is not set." } - $userAccount = (Get-AzADUser -UserPrincipalName (Get-AzContext).Account) + # Use -Mail as the lookup works in both corp and TME tenants + $userAccount = (Get-AzADUser -Mail (Get-AzContext).Account.Id) $TestApplicationOid = $userAccount.Id $TestApplicationId = $testApplicationOid $userAccountName = $userAccount.UserPrincipalName From dee71463cbde1d416c47cf544e34f7966a94ddcb Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Thu, 16 Jan 2025 11:01:53 -0800 Subject: [PATCH 40/82] Set new baseline for cspell (#32171) * Set cspell baseilne * Update documentation/cspell.yaml to remove compound words * pwsh --- .github/cspell.yaml | 6 + .github/workflows/spelling-all.yaml | 30 + .github/workflows/spelling.yaml | 2 +- cSpell.json | 1868 ----------------- cspell.json | 7 + cspell.yaml | 54 + documentation/ci-fix.md | 58 +- documentation/cspell.yaml | 59 + specification/addons/cspell.yaml | 12 + .../adhybridhealthservice/cspell.yaml | 26 + specification/advisor/cspell.yaml | 13 + specification/agrifood/cspell.yaml | 19 + specification/ai/cspell.yaml | 76 + specification/alertsmanagement/cspell.yaml | 15 + specification/analysisservices/cspell.yaml | 12 + specification/apicenter/cspell.yaml | 12 + specification/apimanagement/cspell.yaml | 80 + specification/app/cspell.yaml | 25 + .../appcomplianceautomation/cspell.yaml | 13 + specification/appconfiguration/cspell.yaml | 15 + specification/applicationinsights/cspell.yaml | 38 + specification/appplatform/cspell.yaml | 18 + specification/attestation/cspell.yaml | 15 + specification/authorization/cspell.yaml | 12 + specification/automanage/cspell.yaml | 12 + specification/automation/cspell.yaml | 18 + specification/awsconnector/cspell.yaml | 298 +++ specification/azsadmin/cspell.yaml | 23 + specification/azure-kusto/cspell.yaml | 27 + .../azureactivedirectory/cspell.yaml | 14 + specification/azurearcdata/cspell.yaml | 27 + specification/azuredata/cspell.yaml | 13 + specification/azuredatatransfer/cspell.yaml | 12 + specification/azurefleet/cspell.yaml | 22 + specification/azurelargeinstance/cspell.yaml | 12 + specification/azurestack/cspell.yaml | 14 + specification/azurestackhci/cspell.yaml | 30 + .../baremetalinfrastructure/cspell.yaml | 12 + specification/batch/cspell.yaml | 46 + specification/billing/cspell.yaml | 18 + specification/botservice/cspell.yaml | 14 + specification/cdn/cspell.yaml | 21 + specification/changeanalysis/cspell.yaml | 12 + specification/cloudshell/cspell.yaml | 12 + specification/cognitiveservices/cspell.yaml | 247 +++ specification/common-types/cspell.yaml | 14 + specification/communication/cspell.yaml | 39 + specification/compute/cspell.yaml | 59 + specification/computeschedule/cspell.yaml | 15 + specification/confidentialledger/cspell.yaml | 30 + specification/confluent/cspell.yaml | 18 + specification/connectedcache/cspell.yaml | 19 + specification/connectedvmware/cspell.yaml | 22 + specification/consumption/cspell.yaml | 14 + specification/containerinstance/cspell.yaml | 18 + specification/containerregistry/cspell.yaml | 45 + specification/containerservice/cspell.yaml | 70 + specification/containerstorage/cspell.yaml | 14 + .../contosowidgetmanager/cspell.yaml | 13 + specification/cosmos-db/cspell.yaml | 23 + specification/cost-management/cspell.yaml | 35 + specification/cpim/cspell.yaml | 15 + specification/customer-insights/cspell.yaml | 21 + specification/customerlockbox/cspell.yaml | 12 + specification/databox/cspell.yaml | 55 + specification/databoxedge/cspell.yaml | 49 + specification/databricks/cspell.yaml | 16 + specification/datacatalog/cspell.yaml | 15 + specification/datadog/cspell.yaml | 15 + specification/datafactory/cspell.yaml | 55 + specification/datalake-analytics/cspell.yaml | 15 + specification/datalake-store/cspell.yaml | 23 + specification/datamigration/cspell.yaml | 33 + specification/dataprotection/cspell.yaml | 18 + specification/datashare/cspell.yaml | 13 + .../desktopvirtualization/cspell.yaml | 19 + specification/devcenter/cspell.yaml | 19 + specification/developerhub/cspell.yaml | 27 + .../deviceprovisioningservices/cspell.yaml | 41 + specification/deviceregistry/cspell.yaml | 18 + specification/deviceupdate/cspell.yaml | 12 + specification/devops/cspell.yaml | 13 + .../devopsinfrastructure/cspell.yaml | 19 + specification/devspaces/cspell.yaml | 12 + specification/devtestlabs/cspell.yaml | 18 + specification/dfp/cspell.yaml | 12 + specification/digitaltwins/cspell.yaml | 14 + specification/dnc/cspell.yaml | 13 + specification/dns/cspell.yaml | 16 + specification/domainservices/cspell.yaml | 14 + specification/dynatrace/cspell.yaml | 12 + specification/edgemarketplace/cspell.yaml | 12 + specification/edgeorder/cspell.yaml | 13 + specification/edgezones/cspell.yaml | 13 + specification/elastic/cspell.yaml | 13 + specification/elasticsan/cspell.yaml | 13 + specification/eventgrid/cspell.yaml | 46 + specification/eventhub/cspell.yaml | 13 + specification/ews/cspell.yaml | 12 + specification/fabric/cspell.yaml | 12 + specification/fist/cspell.yaml | 20 + specification/fluidrelay/cspell.yaml | 12 + specification/frontdoor/cspell.yaml | 20 + specification/graphrbac/cspell.yaml | 12 + specification/guestconfiguration/cspell.yaml | 15 + specification/hanaonazure/cspell.yaml | 12 + specification/hdinsight/cspell.yaml | 62 + specification/healthcareapis/cspell.yaml | 19 + .../healthdataaiservices/cspell.yaml | 21 + specification/hybridaks/cspell.yaml | 18 + specification/hybridcompute/cspell.yaml | 17 + specification/hybridconnectivity/cspell.yaml | 13 + specification/hybriddatamanager/cspell.yaml | 17 + specification/hybridkubernetes/cspell.yaml | 14 + specification/hybridnetwork/cspell.yaml | 14 + specification/imagebuilder/cspell.yaml | 12 + specification/imds/cspell.yaml | 13 + specification/impact/cspell.yaml | 12 + specification/informatica/cspell.yaml | 15 + specification/intune/cspell.yaml | 12 + specification/iotcentral/cspell.yaml | 20 + specification/iothub/cspell.yaml | 20 + specification/iotoperations/cspell.yaml | 33 + specification/iotoperationsmq/cspell.yaml | 23 + specification/iotspaces/cspell.yaml | 13 + specification/keyvault/cspell.yaml | 53 + .../kubernetesconfiguration/cspell.yaml | 17 + specification/kubernetesruntime/cspell.yaml | 12 + specification/labservices/cspell.yaml | 16 + specification/liftrastronomer/cspell.yaml | 13 + specification/liftrneon/cspell.yaml | 13 + specification/liftrpinecone/cspell.yaml | 19 + specification/liftrqumulo/cspell.yaml | 13 + specification/loadtestservice/cspell.yaml | 13 + specification/logic/cspell.yaml | 33 + specification/logz/cspell.yaml | 13 + .../m365securityandcompliance/cspell.yaml | 12 + specification/machinelearning/cspell.yaml | 13 + .../machinelearningservices/cspell.yaml | 121 ++ specification/maintenance/cspell.yaml | 14 + .../managednetworkfabric/cspell.yaml | 13 + specification/managementgroups/cspell.yaml | 12 + specification/maps/cspell.yaml | 70 + specification/mariadb/cspell.yaml | 12 + specification/marketplacecatalog/cspell.yaml | 19 + .../marketplacenotifications/cspell.yaml | 12 + specification/mediaservices/cspell.yaml | 34 + specification/migrate/cspell.yaml | 64 + specification/migrateprojects/cspell.yaml | 15 + specification/mixedreality/cspell.yaml | 13 + specification/mobilenetwork/cspell.yaml | 41 + specification/mongocluster/cspell.yaml | 19 + specification/monitor/cspell.yaml | 42 + specification/msi/cspell.yaml | 12 + specification/mysql/cspell.yaml | 22 + specification/netapp/cspell.yaml | 22 + specification/network/cspell.yaml | 90 + specification/networkanalytics/cspell.yaml | 12 + specification/networkcloud/cspell.yaml | 26 + specification/networkfunction/cspell.yaml | 12 + specification/newrelic/cspell.yaml | 12 + specification/nginx/cspell.yaml | 20 + specification/notificationhubs/cspell.yaml | 27 + specification/oep/cspell.yaml | 12 + specification/offazurespringboot/cspell.yaml | 12 + specification/operationalinsights/cspell.yaml | 14 + .../operationsmanagement/cspell.yaml | 12 + specification/oracle/cspell.yaml | 47 + specification/orbital/cspell.yaml | 17 + specification/paloaltonetworks/cspell.yaml | 18 + specification/peering/cspell.yaml | 15 + specification/playwrighttesting/cspell.yaml | 15 + specification/policyinsights/cspell.yaml | 13 + specification/portalservices/cspell.yaml | 12 + specification/postgresql/cspell.yaml | 24 + specification/postgresqlhsc/cspell.yaml | 19 + specification/powerbidedicated/cspell.yaml | 14 + specification/powerbiembedded/cspell.yaml | 13 + specification/powerbiprivatelinks/cspell.yaml | 13 + specification/privatedns/cspell.yaml | 13 + .../programmableconnectivity/cspell.yaml | 15 + specification/providerhub/cspell.yaml | 13 + specification/purview/cspell.yaml | 32 + specification/quantum/cspell.yaml | 15 + specification/quota/cspell.yaml | 16 + specification/recoveryservices/cspell.yaml | 14 + .../recoveryservicesbackup/cspell.yaml | 38 + .../cspell.yaml | 16 + .../recoveryservicessiterecovery/cspell.yaml | 31 + specification/redhatopenshift/cspell.yaml | 13 + specification/redis/cspell.yaml | 14 + specification/redisenterprise/cspell.yaml | 13 + specification/relay/cspell.yaml | 34 + specification/reservations/cspell.yaml | 20 + specification/resourceconnector/cspell.yaml | 15 + specification/resourcehealth/cspell.yaml | 24 + specification/resourcemover/cspell.yaml | 12 + specification/resources/cspell.yaml | 22 + specification/riskiq/cspell.yaml | 30 + specification/saas/cspell.yaml | 18 + specification/scom/cspell.yaml | 16 + specification/scvmm/cspell.yaml | 18 + specification/search/cspell.yaml | 111 + specification/security/cspell.yaml | 25 + .../securityandcompliance/cspell.yaml | 12 + specification/securityinsights/cspell.yaml | 62 + specification/service-map/cspell.yaml | 14 + specification/servicebus/cspell.yaml | 31 + specification/servicefabric/cspell.yaml | 46 + .../servicefabricmanagedclusters/cspell.yaml | 25 + specification/servicefabricmesh/cspell.yaml | 12 + specification/servicelinker/cspell.yaml | 12 + specification/signalr/cspell.yaml | 20 + specification/solutions/cspell.yaml | 12 + specification/sphere/cspell.yaml | 13 + specification/splitio/cspell.yaml | 12 + specification/sql/cspell.yaml | 65 + specification/sqlvirtualmachine/cspell.yaml | 28 + specification/standbypool/cspell.yaml | 14 + .../storSimple1200Series/cspell.yaml | 21 + specification/storage/cspell.yaml | 48 + specification/storageactions/cspell.yaml | 12 + specification/storagecache/cspell.yaml | 13 + specification/storageimportexport/cspell.yaml | 19 + specification/storagemover/cspell.yaml | 12 + specification/storagepool/cspell.yaml | 14 + specification/storagesync/cspell.yaml | 25 + .../storsimple8000series/cspell.yaml | 21 + specification/streamanalytics/cspell.yaml | 12 + specification/synapse/cspell.yaml | 89 + specification/terraform/cspell.yaml | 22 + specification/testbase/cspell.yaml | 17 + specification/timeseriesinsights/cspell.yaml | 12 + specification/translation/cspell.yaml | 20 + specification/trustedsigning/cspell.yaml | 14 + specification/verifiedid/cspell.yaml | 12 + specification/vi/cspell.yaml | 17 + specification/videoanalyzer/cspell.yaml | 23 + specification/visualstudio/cspell.yaml | 16 + specification/vmware/cspell.yaml | 18 + specification/vmwarecloudsimple/cspell.yaml | 19 + specification/voiceservices/cspell.yaml | 19 + specification/web/cspell.yaml | 91 + specification/webpubsub/cspell.yaml | 18 + specification/windowsesu/cspell.yaml | 12 + specification/workloads/cspell.yaml | 26 + 246 files changed, 6054 insertions(+), 1897 deletions(-) create mode 100644 .github/cspell.yaml create mode 100644 .github/workflows/spelling-all.yaml delete mode 100644 cSpell.json create mode 100644 cspell.json create mode 100644 cspell.yaml create mode 100644 documentation/cspell.yaml create mode 100644 specification/addons/cspell.yaml create mode 100644 specification/adhybridhealthservice/cspell.yaml create mode 100644 specification/advisor/cspell.yaml create mode 100644 specification/agrifood/cspell.yaml create mode 100644 specification/ai/cspell.yaml create mode 100644 specification/alertsmanagement/cspell.yaml create mode 100644 specification/analysisservices/cspell.yaml create mode 100644 specification/apicenter/cspell.yaml create mode 100644 specification/apimanagement/cspell.yaml create mode 100644 specification/app/cspell.yaml create mode 100644 specification/appcomplianceautomation/cspell.yaml create mode 100644 specification/appconfiguration/cspell.yaml create mode 100644 specification/applicationinsights/cspell.yaml create mode 100644 specification/appplatform/cspell.yaml create mode 100644 specification/attestation/cspell.yaml create mode 100644 specification/authorization/cspell.yaml create mode 100644 specification/automanage/cspell.yaml create mode 100644 specification/automation/cspell.yaml create mode 100644 specification/awsconnector/cspell.yaml create mode 100644 specification/azsadmin/cspell.yaml create mode 100644 specification/azure-kusto/cspell.yaml create mode 100644 specification/azureactivedirectory/cspell.yaml create mode 100644 specification/azurearcdata/cspell.yaml create mode 100644 specification/azuredata/cspell.yaml create mode 100644 specification/azuredatatransfer/cspell.yaml create mode 100644 specification/azurefleet/cspell.yaml create mode 100644 specification/azurelargeinstance/cspell.yaml create mode 100644 specification/azurestack/cspell.yaml create mode 100644 specification/azurestackhci/cspell.yaml create mode 100644 specification/baremetalinfrastructure/cspell.yaml create mode 100644 specification/batch/cspell.yaml create mode 100644 specification/billing/cspell.yaml create mode 100644 specification/botservice/cspell.yaml create mode 100644 specification/cdn/cspell.yaml create mode 100644 specification/changeanalysis/cspell.yaml create mode 100644 specification/cloudshell/cspell.yaml create mode 100644 specification/cognitiveservices/cspell.yaml create mode 100644 specification/common-types/cspell.yaml create mode 100644 specification/communication/cspell.yaml create mode 100644 specification/compute/cspell.yaml create mode 100644 specification/computeschedule/cspell.yaml create mode 100644 specification/confidentialledger/cspell.yaml create mode 100644 specification/confluent/cspell.yaml create mode 100644 specification/connectedcache/cspell.yaml create mode 100644 specification/connectedvmware/cspell.yaml create mode 100644 specification/consumption/cspell.yaml create mode 100644 specification/containerinstance/cspell.yaml create mode 100644 specification/containerregistry/cspell.yaml create mode 100644 specification/containerservice/cspell.yaml create mode 100644 specification/containerstorage/cspell.yaml create mode 100644 specification/contosowidgetmanager/cspell.yaml create mode 100644 specification/cosmos-db/cspell.yaml create mode 100644 specification/cost-management/cspell.yaml create mode 100644 specification/cpim/cspell.yaml create mode 100644 specification/customer-insights/cspell.yaml create mode 100644 specification/customerlockbox/cspell.yaml create mode 100644 specification/databox/cspell.yaml create mode 100644 specification/databoxedge/cspell.yaml create mode 100644 specification/databricks/cspell.yaml create mode 100644 specification/datacatalog/cspell.yaml create mode 100644 specification/datadog/cspell.yaml create mode 100644 specification/datafactory/cspell.yaml create mode 100644 specification/datalake-analytics/cspell.yaml create mode 100644 specification/datalake-store/cspell.yaml create mode 100644 specification/datamigration/cspell.yaml create mode 100644 specification/dataprotection/cspell.yaml create mode 100644 specification/datashare/cspell.yaml create mode 100644 specification/desktopvirtualization/cspell.yaml create mode 100644 specification/devcenter/cspell.yaml create mode 100644 specification/developerhub/cspell.yaml create mode 100644 specification/deviceprovisioningservices/cspell.yaml create mode 100644 specification/deviceregistry/cspell.yaml create mode 100644 specification/deviceupdate/cspell.yaml create mode 100644 specification/devops/cspell.yaml create mode 100644 specification/devopsinfrastructure/cspell.yaml create mode 100644 specification/devspaces/cspell.yaml create mode 100644 specification/devtestlabs/cspell.yaml create mode 100644 specification/dfp/cspell.yaml create mode 100644 specification/digitaltwins/cspell.yaml create mode 100644 specification/dnc/cspell.yaml create mode 100644 specification/dns/cspell.yaml create mode 100644 specification/domainservices/cspell.yaml create mode 100644 specification/dynatrace/cspell.yaml create mode 100644 specification/edgemarketplace/cspell.yaml create mode 100644 specification/edgeorder/cspell.yaml create mode 100644 specification/edgezones/cspell.yaml create mode 100644 specification/elastic/cspell.yaml create mode 100644 specification/elasticsan/cspell.yaml create mode 100644 specification/eventgrid/cspell.yaml create mode 100644 specification/eventhub/cspell.yaml create mode 100644 specification/ews/cspell.yaml create mode 100644 specification/fabric/cspell.yaml create mode 100644 specification/fist/cspell.yaml create mode 100644 specification/fluidrelay/cspell.yaml create mode 100644 specification/frontdoor/cspell.yaml create mode 100644 specification/graphrbac/cspell.yaml create mode 100644 specification/guestconfiguration/cspell.yaml create mode 100644 specification/hanaonazure/cspell.yaml create mode 100644 specification/hdinsight/cspell.yaml create mode 100644 specification/healthcareapis/cspell.yaml create mode 100644 specification/healthdataaiservices/cspell.yaml create mode 100644 specification/hybridaks/cspell.yaml create mode 100644 specification/hybridcompute/cspell.yaml create mode 100644 specification/hybridconnectivity/cspell.yaml create mode 100644 specification/hybriddatamanager/cspell.yaml create mode 100644 specification/hybridkubernetes/cspell.yaml create mode 100644 specification/hybridnetwork/cspell.yaml create mode 100644 specification/imagebuilder/cspell.yaml create mode 100644 specification/imds/cspell.yaml create mode 100644 specification/impact/cspell.yaml create mode 100644 specification/informatica/cspell.yaml create mode 100644 specification/intune/cspell.yaml create mode 100644 specification/iotcentral/cspell.yaml create mode 100644 specification/iothub/cspell.yaml create mode 100644 specification/iotoperations/cspell.yaml create mode 100644 specification/iotoperationsmq/cspell.yaml create mode 100644 specification/iotspaces/cspell.yaml create mode 100644 specification/keyvault/cspell.yaml create mode 100644 specification/kubernetesconfiguration/cspell.yaml create mode 100644 specification/kubernetesruntime/cspell.yaml create mode 100644 specification/labservices/cspell.yaml create mode 100644 specification/liftrastronomer/cspell.yaml create mode 100644 specification/liftrneon/cspell.yaml create mode 100644 specification/liftrpinecone/cspell.yaml create mode 100644 specification/liftrqumulo/cspell.yaml create mode 100644 specification/loadtestservice/cspell.yaml create mode 100644 specification/logic/cspell.yaml create mode 100644 specification/logz/cspell.yaml create mode 100644 specification/m365securityandcompliance/cspell.yaml create mode 100644 specification/machinelearning/cspell.yaml create mode 100644 specification/machinelearningservices/cspell.yaml create mode 100644 specification/maintenance/cspell.yaml create mode 100644 specification/managednetworkfabric/cspell.yaml create mode 100644 specification/managementgroups/cspell.yaml create mode 100644 specification/maps/cspell.yaml create mode 100644 specification/mariadb/cspell.yaml create mode 100644 specification/marketplacecatalog/cspell.yaml create mode 100644 specification/marketplacenotifications/cspell.yaml create mode 100644 specification/mediaservices/cspell.yaml create mode 100644 specification/migrate/cspell.yaml create mode 100644 specification/migrateprojects/cspell.yaml create mode 100644 specification/mixedreality/cspell.yaml create mode 100644 specification/mobilenetwork/cspell.yaml create mode 100644 specification/mongocluster/cspell.yaml create mode 100644 specification/monitor/cspell.yaml create mode 100644 specification/msi/cspell.yaml create mode 100644 specification/mysql/cspell.yaml create mode 100644 specification/netapp/cspell.yaml create mode 100644 specification/network/cspell.yaml create mode 100644 specification/networkanalytics/cspell.yaml create mode 100644 specification/networkcloud/cspell.yaml create mode 100644 specification/networkfunction/cspell.yaml create mode 100644 specification/newrelic/cspell.yaml create mode 100644 specification/nginx/cspell.yaml create mode 100644 specification/notificationhubs/cspell.yaml create mode 100644 specification/oep/cspell.yaml create mode 100644 specification/offazurespringboot/cspell.yaml create mode 100644 specification/operationalinsights/cspell.yaml create mode 100644 specification/operationsmanagement/cspell.yaml create mode 100644 specification/oracle/cspell.yaml create mode 100644 specification/orbital/cspell.yaml create mode 100644 specification/paloaltonetworks/cspell.yaml create mode 100644 specification/peering/cspell.yaml create mode 100644 specification/playwrighttesting/cspell.yaml create mode 100644 specification/policyinsights/cspell.yaml create mode 100644 specification/portalservices/cspell.yaml create mode 100644 specification/postgresql/cspell.yaml create mode 100644 specification/postgresqlhsc/cspell.yaml create mode 100644 specification/powerbidedicated/cspell.yaml create mode 100644 specification/powerbiembedded/cspell.yaml create mode 100644 specification/powerbiprivatelinks/cspell.yaml create mode 100644 specification/privatedns/cspell.yaml create mode 100644 specification/programmableconnectivity/cspell.yaml create mode 100644 specification/providerhub/cspell.yaml create mode 100644 specification/purview/cspell.yaml create mode 100644 specification/quantum/cspell.yaml create mode 100644 specification/quota/cspell.yaml create mode 100644 specification/recoveryservices/cspell.yaml create mode 100644 specification/recoveryservicesbackup/cspell.yaml create mode 100644 specification/recoveryservicesdatareplication/cspell.yaml create mode 100644 specification/recoveryservicessiterecovery/cspell.yaml create mode 100644 specification/redhatopenshift/cspell.yaml create mode 100644 specification/redis/cspell.yaml create mode 100644 specification/redisenterprise/cspell.yaml create mode 100644 specification/relay/cspell.yaml create mode 100644 specification/reservations/cspell.yaml create mode 100644 specification/resourceconnector/cspell.yaml create mode 100644 specification/resourcehealth/cspell.yaml create mode 100644 specification/resourcemover/cspell.yaml create mode 100644 specification/resources/cspell.yaml create mode 100644 specification/riskiq/cspell.yaml create mode 100644 specification/saas/cspell.yaml create mode 100644 specification/scom/cspell.yaml create mode 100644 specification/scvmm/cspell.yaml create mode 100644 specification/search/cspell.yaml create mode 100644 specification/security/cspell.yaml create mode 100644 specification/securityandcompliance/cspell.yaml create mode 100644 specification/securityinsights/cspell.yaml create mode 100644 specification/service-map/cspell.yaml create mode 100644 specification/servicebus/cspell.yaml create mode 100644 specification/servicefabric/cspell.yaml create mode 100644 specification/servicefabricmanagedclusters/cspell.yaml create mode 100644 specification/servicefabricmesh/cspell.yaml create mode 100644 specification/servicelinker/cspell.yaml create mode 100644 specification/signalr/cspell.yaml create mode 100644 specification/solutions/cspell.yaml create mode 100644 specification/sphere/cspell.yaml create mode 100644 specification/splitio/cspell.yaml create mode 100644 specification/sql/cspell.yaml create mode 100644 specification/sqlvirtualmachine/cspell.yaml create mode 100644 specification/standbypool/cspell.yaml create mode 100644 specification/storSimple1200Series/cspell.yaml create mode 100644 specification/storage/cspell.yaml create mode 100644 specification/storageactions/cspell.yaml create mode 100644 specification/storagecache/cspell.yaml create mode 100644 specification/storageimportexport/cspell.yaml create mode 100644 specification/storagemover/cspell.yaml create mode 100644 specification/storagepool/cspell.yaml create mode 100644 specification/storagesync/cspell.yaml create mode 100644 specification/storsimple8000series/cspell.yaml create mode 100644 specification/streamanalytics/cspell.yaml create mode 100644 specification/synapse/cspell.yaml create mode 100644 specification/terraform/cspell.yaml create mode 100644 specification/testbase/cspell.yaml create mode 100644 specification/timeseriesinsights/cspell.yaml create mode 100644 specification/translation/cspell.yaml create mode 100644 specification/trustedsigning/cspell.yaml create mode 100644 specification/verifiedid/cspell.yaml create mode 100644 specification/vi/cspell.yaml create mode 100644 specification/videoanalyzer/cspell.yaml create mode 100644 specification/visualstudio/cspell.yaml create mode 100644 specification/vmware/cspell.yaml create mode 100644 specification/vmwarecloudsimple/cspell.yaml create mode 100644 specification/voiceservices/cspell.yaml create mode 100644 specification/web/cspell.yaml create mode 100644 specification/webpubsub/cspell.yaml create mode 100644 specification/windowsesu/cspell.yaml create mode 100644 specification/workloads/cspell.yaml diff --git a/.github/cspell.yaml b/.github/cspell.yaml new file mode 100644 index 000000000000..9fcc52014a45 --- /dev/null +++ b/.github/cspell.yaml @@ -0,0 +1,6 @@ +version: '0.2' +import: + - ../cspell.yaml +words: + - azsdk + - pwsh diff --git a/.github/workflows/spelling-all.yaml b/.github/workflows/spelling-all.yaml new file mode 100644 index 000000000000..a17b57e3dd9b --- /dev/null +++ b/.github/workflows/spelling-all.yaml @@ -0,0 +1,30 @@ +name: SpellCheck - All + +on: + push: + branches: + - main + - RPSaaSMaster + + schedule: + # Run every day at 12:06 UTC + - cron: "6 12 * * *" + workflow_dispatch: + +jobs: + spellcheck: + name: SpellCheck + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Run spelling check + run: | + ./eng/common/spelling/Invoke-Cspell.ps1 ` + -ScanGlobs 'specification/**' ` + -CSpellConfigPath './cspell.json' + shell: pwsh diff --git a/.github/workflows/spelling.yaml b/.github/workflows/spelling.yaml index 8b3f38289f62..18d5d57eb21b 100644 --- a/.github/workflows/spelling.yaml +++ b/.github/workflows/spelling.yaml @@ -16,7 +16,7 @@ jobs: - name: Run spelling check run: | ./eng/common/scripts/check-spelling-in-changed-files.ps1 ` - -CSpellConfigPath 'cSpell.json' ` + -CSpellConfigPath 'cspell.json' ` -SourceCommittish HEAD ` -TargetCommittish HEAD^ ` -ExitWithError diff --git a/cSpell.json b/cSpell.json deleted file mode 100644 index 8ebd8c60d701..000000000000 --- a/cSpell.json +++ /dev/null @@ -1,1868 +0,0 @@ -{ - "version": "0.2", - "language": "en", - "words": [ - "authnotrequired", - "azsdk", - "communicationservices", - "confidentialledger", - "Creds", - "fixdate", - "frontends", - "partiallycompleted", - "servicenetworking", - "subchannel", - "umls" - ], - "allowCompoundWords": true, - "dictionaryDefinitions": [ - { - "name": "custom-words", - "file": "./custom-words.txt", - "description": "Project Words" - } - ], - "flagWords": [ - "teh" - ], - "ignorePaths": [ - "**/examples/**", - "**/package-lock.json", - ".github/**", - "cSpell.json", - "eng/**", - "node_modules/**", - "custom-words.txt" - ], - "ignoreRegExpList": [ - "v\\d", - "email", - "Base64" - ], - "minWordLength": 4, - "dictionaries": [ - "companies", - "csharp", - "custom-words", - "go", - "html", - "java", - "node", - "python", - "softwareTerms", - "typescript" - ], - "overrides": [ - { - "filename": "**/specification/playwrighttesting/**/*", - "words": [ - "microsoftplaywrighttesting", - "playwrighttesting" - ] - }, - { - "filename": "**/specification/azurearcdata/resource-manager/Microsoft.AzureArcData/**/*.json", - "words": [ - "azurearcdata" - ] - }, - { - "filename": "**/specification/azurearcdata/resource-manager/Microsoft.AzureArcData/preview/**/*.json", - "words": [ - "SSRS", - "SSAS", - "SSIS", - "PBIRS" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2018-01-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2019-09-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-03-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-05-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/preview/2021-08-01-preview/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-12-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-02-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-09-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-12-01/databox.json", - "words": [ - "Tera" - ] - }, - { - "filename": "**/specification/servicebus/resource-manager/Microsoft.ServiceBus/stable/2017-04-01/Rules.json", - "words": [ - "Ruleproperties" - ] - }, - { - "filename": "**/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/Rules.json", - "words": [ - "Ruleproperties" - ] - }, - { - "filename": "**/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2021-01-01-preview/Rules.json", - "words": [ - "Ruleproperties" - ] - }, - { - "filename": "**/specification/servicebus/resource-manager/Microsoft.ServiceBus/stable/2014-09-01/servicebus.json", - "words": [ - "Planproperties" - ] - }, - { - "filename": "**/specification/logic/resource-manager/Microsoft.Logic/preview/2015-02-01-preview/logic.json", - "words": [ - "Accesskey" - ] - }, - { - "filename": "**/specification/billing/**/*.json", - "words": [ - "mosp", - "resellee", - "cnpj" - ] - }, - { - "filename": "**/specification/compute/resource-manager/Microsoft.ContainerService/preview/2015-11-01-preview/containerService.json", - "words": [ - "Ochestrator" - ] - }, - { - "filename": "**/specification/compute/resource-manager/Microsoft.ContainerService/stable/2016-03-30/containerService.json", - "words": [ - "Ochestrator" - ] - }, - { - "filename": "**/specification/compute/resource-manager/Microsoft.ContainerService/stable/2016-09-30/containerService.json", - "words": [ - "Ochestrator" - ] - }, - { - "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2016-03-30/containerService.json", - "words": [ - "Ochestrator" - ] - }, - { - "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2016-09-30/containerService.json", - "words": [ - "Ochestrator" - ] - }, - { - "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerInstance/stable/2021-10-01/containerInstance.json", - "words": [ - "Noreuse" - ] - }, - { - "filename": "**/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/preview/**/containerInstance.json", - "words": [ - "ngroups", - "TransactionOptimized" - ] - }, - { - "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/**/*json", - "words": [ - "vtpm", - "trustedlaunch", - "aksadvancednetworking", - "PDBs", - "undrainable", - "Undrainable", - "acnstls", - "kubeletIdentity", - "kubeletidentity" - ] - }, - { - "filename": "**/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2018-08-10/containerregistry.json", - "words": [ - "WGXM", - "EYWQ", - "EYWQ", - "LQUP", - "BCWG", - "VMQS", - "WWKZ", - "EWDG", - "Ywhk", - "Vfyc", - "Lfot", - "Sllb", - "EYWQ", - "LQUP", - "BCWG", - "VMQS", - "WWKZ", - "EWDG", - "Ywhk", - "Vfyc", - "Lfot", - "Sllb" - ] - }, - { - "filename": "**/specification/automation/resource-manager/Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationRun.json", - "words": [ - "softare" - ] - }, - { - "filename": "**/specification/datacatalog/resource-manager/Microsoft.DataCatalog/stable/2016-03-30/datacatalog.json", - "words": [ - "Listt" - ] - }, - { - "filename": "**/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json", - "words": [ - "Resouce" - ] - }, - { - "filename": "**/specification/app/resource-manager/Microsoft.App/preview/2023-11-02-preview/ManagedEnvironments.json", - "words": [ - "otlp" - ] - }, - { - "filename": "**/specification/app/resource-manager/Microsoft.App/**/*.json", - "words": [ - "workflowapp" - ] - }, - { - "filename": "**/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.2/servicefabric.json", - "words": [ - "Qurum", - "Milli", - "Fautls" - ] - }, - { - "filename": "**/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.3/servicefabric.json", - "words": [ - "Qurum", - "Milli", - "Fautls" - ] - }, - { - "filename": "**/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.4/servicefabric.json", - "words": [ - "Qurum", - "Milli", - "Fautls" - ] - }, - { - "filename": "**/specification/storsimple8000series/resource-manager/Microsoft.StorSimple/stable/2017-06-01/storsimple.json", - "words": [ - "Availablity", - "Remotemanagement" - ] - }, - { - "filename": "**/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json", - "words": [ - "Migrationdate" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/stable/2014-04-01/backups.json", - "words": [ - "Droppeded" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/DistributedAvailabilityGroups.json", - "words": [ - "freemium" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstances.json", - "words": [ - "freemium" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ServerTrustCertificates.json", - "words": [ - "freemium" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstanceDtcs.json", - "words": [ - "msdtcdns", - "msdtc's" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/TimeZones.json", - "words": [ - "freemium" - ] - }, - { - "filename": "**/specification/sql/resource-manager/Microsoft.Sql/**/ElasticPools.json", - "words": [ - "PRMS" - ] - }, - { - "filename": "**/specification/datafactory/resource-manager/Microsoft.DataFactory/preview/2017-09-01-preview/entityTypes/IntegrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/integrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json", - "words": [ - "Miliseconds", - "INITIALIAZING" - ] - }, - { - "filename": "**/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2015-01-01/resourcehealth.json", - "words": [ - "occured" - ] - }, - { - "filename": "**/specification/storSimple1200Series/resource-manager/Microsoft.StorSimple/stable/2016-10-01/StorSimple.json", - "words": [ - "Availablity", - "Requestrequest" - ] - }, - { - "filename": "**/specification/keyvault/data-plane/Microsoft.KeyVault/**/keyvault.json", - "words": [ - "Regenerte" - ] - }, - { - "filename": "**/specification/keyvault/resource-manager/readme.go.md", - "words": [ - "modelerfour" - ] - }, - { - "filename": "**/specification/keyvault/Security.KeyVault.Administration/README.md", - "words": [ - "subservices", - "subservice", - "renamings", - "tspconfig", - "backuprestore" - ] - }, - { - "filename": "**/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml", - "words": [ - "subpackage" - ] - }, - { - "filename": "**/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml", - "words": [ - "backuprestore" - ] - }, - { - "filename": "**/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json", - "words": [ - "whatsapp" - ] - }, - { - "filename": "**/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/SystemEvents.json", - "words": [ - "clientsession" - ] - }, - { - "filename": "**/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json", - "words": [ - "whatsapp" - ] - }, - { - "filename": "**/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json", - "words": [ - "whatsapp" - ] - }, - { - "filename": "**/specification/eventgrid/data-plane/Microsoft.EventGrid/**/EventGrid.json", - "words": [ - "renewlock" - ] - }, - { - "filename": "**/specification/keyvault/data-plane/Microsoft.KeyVault/**/storage.json", - "words": [ - "Regenerte" - ] - }, - { - "filename": "**/specification/adhybridhealthservice/resource-manager/Microsoft.ADHybridHealthService/stable/2014-01-01/ADHybridHealthService.json", - "words": [ - "Availibility", - "Mpping", - "Occured", - "modififed", - "Addomain" - ] - }, - { - "filename": "**/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimapis.json", - "words": [ - "Commentss", - "Issu", - "Attachmentss" - ] - }, - { - "filename": "**/specification/storagesync/resource-manager/Microsoft.StorageSync/stable/2018-07-01/storagesync.json", - "words": [ - "Managementt" - ] - }, - { - "filename": "**/specification/netapp/**/*.json", - "words": [ - "SVMs", - "SVM's", - "kibibytes", - "transitiontocmk" - ] - }, - { - "filename": "**/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json", - "words": [ - "Firewal" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2016-08-01/WebApps.json", - "words": [ - "priviledged" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json", - "words": [ - "priviledged" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2018-11-01/WebApps.json", - "words": [ - "priviledged" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/**/WebApps.json", - "words": [ - "sitecontainers", - "updatemachinekey" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2015-08-01/service.json", - "words": [ - "Defintions", - "Availablility", - "Availabilily", - "diagnosics" - ] - }, - { - "filename": "**/specification/customer-insights/resource-manager/Microsoft.CustomerInsights/stable/2017-04-26/customer-insights.json", - "words": [ - "thres" - ] - }, - { - "filename": "**/specification/keyvault/data-plane/Microsoft.KeyVault/stable/2016-10-01/keyvault.json", - "words": [ - "Regenerte" - ] - }, - { - "filename": "**/specification/customer-insights/resource-manager/Microsoft.CustomerInsights/stable/2017-01-01/customer-insights.json", - "words": [ - "thres" - ] - }, - { - "filename": "**/specification/monitor/resource-manager/Microsoft.Insights/stable/2018-09-01/baseline_API.json", - "words": [ - "metdata" - ] - }, - { - "filename": "**/specification/storagesync/resource-manager/Microsoft.StorageSync/stable/2018-04-02/storagesync.json", - "words": [ - "Managementt" - ] - }, - { - "filename": "**/specification/migrate/resource-manager/**/*.json", - "words": [ - "Occured", - "Assessible", - "sqlcollectors", - "Reasonings", - "Overcommit", - "overcommit", - "SSDE", - "Recieved", - "Ebds", - "idms", - "Idms", - "Cluter", - "Mfamily", - "Datacentre" - ] - }, - { - "filename": "**/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/preview/2018-08-01/ResourceHealth.json", - "words": [ - "occured" - ] - }, - { - "filename": "**/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json", - "words": [ - "Infomation" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.DomainRegistration/stable/2015-04-01/Domains.json", - "words": [ - "Availablility" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.DomainRegistration/stable/2018-02-01/Domains.json", - "words": [ - "Availablility" - ] - }, - { - "filename": "**/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2018-12-01-preview/costmanagement.json", - "words": [ - "Managment" - ] - }, - { - "filename": "**/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2018-08-31/costmanagement.json", - "words": [ - "Managment" - ] - }, - { - "filename": "**/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2024-08-01/costmanagement.pricesheets.json", - "words": [ - "unitofmeasure" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2017-08-21-preview/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2017-11-15/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2018-01-22/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-01-01/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/storagesync/resource-manager/Microsoft.StorageSync/preview/2017-06-05-preview/storagesync.json", - "words": [ - "Managementt" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServiceEnvironments.json", - "words": [ - "diagnosics", - "Availabilily", - "Accessable" - ] - }, - { - "filename": "**/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2017-04-01/notificationhubs.json", - "words": [ - "Availiable", - "Regenrate" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServiceEnvironments.json", - "words": [ - "diagnosics", - "Availabilily" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServicePlans.json", - "words": [ - "Defintions" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json", - "words": [ - "Defintions" - ] - }, - { - "filename": "**/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2017-07-01/resourcehealth.json", - "words": [ - "occured" - ] - }, - { - "filename": "**/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2014-09-01/notificationhubs.json", - "words": [ - "Availiable" - ] - }, - { - "filename": "**/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2016-03-01/notificationhubs.json", - "words": [ - "Availiable" - ] - }, - { - "filename": "**/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json", - "words": [ - "Multistatement" - ] - }, - { - "filename": "**/specification/synapse/data-plane/Microsoft.Synapse/stable/2020-12-01/entityTypes/Pipeline.json", - "words": [ - "Multistatement" - ] - }, - { - "filename": "**/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/integrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/integrationRuntime.json", - "words": [ - "Exprired" - ] - }, - { - "filename": "**/specification/datamigration/resource-manager/Microsoft.DataMigration/stable/2018-04-19/definitions/TasksCommon.json", - "words": [ - "Miliseconds", - "INITIALIAZING" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/EntitySearch/stable/v1.0/EntitySearch.json", - "words": [ - "Speciality" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/Face/stable/v1.0/Face.json", - "words": [ - "addfacefromurl", - "deleteface", - "detectwithstream", - "detectwithurl", - "facelist", - "findsimilar", - "getface", - "largefacelist", - "largepersongroup", - "largepersongroupperson", - "persongroup", - "persongroupperson", - "verifyfacetoface" - ] - }, - { - "filename": "**/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json", - "words": [ - "Listblob" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/TextAnalytics/preview/v2.1/TextAnalytics.json", - "words": [ - "carretera", - "estaba", - "atascada", - "Había", - "mucho", - "tráfico", - "ayer", - "carretera", - "estaba", - "atascada", - "Había", - "mucho", - "tráfico", - "ayer" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/TextAnalytics/stable/v2.0/TextAnalytics.json", - "words": [ - "carretera", - "estaba", - "atascada", - "Había", - "mucho", - "tráfico", - "ayer", - "carretera", - "estaba", - "atascada", - "Había", - "mucho", - "tráfico", - "ayer" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-02-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-04-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-06-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-07-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-08-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/networkWatcher.json", - "words": [ - "Uknown" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-03-01/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-07-01/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2020-09-01/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-09-01-preview/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2020-12-01/databoxedge.json", - "words": [ - "Fulfilment" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/TranslatorText/stable/v3.0/TranslatorText.json", - "words": [ - "mosca", - "Jpan", - "konnichiha", - "nein", - "bicho" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/Speech/VideoTranslation/preview/2024-05-20-preview/VideoTranslation.json", - "words": [ - "videotranslation", - "webvtt", - "Webvtt" - ] - }, - { - "filename": "**/specification/network/resource-manager/Microsoft.Network/stable/**/webapplicationfirewall.json", - "words": [ - "Conditon" - ] - }, - { - "filename": "**/specification/relay/resource-manager/Microsoft.Relay/stable/2016-07-01/relay.json", - "words": [ - "successfuly", - "Autorization", - "retirve", - "Regenrate", - "usermetadata", - "Relaytype", - "reponse", - "namespce" - ] - }, - { - "filename": "**/specification/relay/resource-manager/Microsoft.Relay/stable/2017-04-01/relay.json", - "words": [ - "successfuly", - "Autorization", - "retirve", - "butthe", - "Regenrate", - "usermetadata", - "Relaytype", - "neeeds", - "reponse" - ] - }, - { - "filename": "**/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json", - "words": [ - "mysqldb", - "psqldb" - ] - }, - { - "filename": "**/specification/maps/data-plane/Weather/stable/1.1/weather.json", - "words": [ - "locationally", - "unittype" - ] - }, - { - "filename": "**/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json", - "words": [ - "Chttp", - "Fcontoso", - "Fpushpins" - ] - }, - { - "filename": "**/specification/maps/data-plane/Render/preview/1.0/render.json", - "words": [ - "Chttp", - "Fcontoso", - "Fpushpins" - ] - }, - { - "filename": "**/specification/maps/data-plane/Render/stable/2022-08-01/render.json", - "words": [ - "maptileset" - ] - }, - { - "filename": "**/specification/maps/data-plane/Spatial/stable/2022-08-01/spatial.json", - "words": [ - "postbuffer", - "getbuffer", - "postclosestpoint", - "getclosestpoint" - ] - }, - { - "filename": "**/specification/maps/data-plane/Search/**", - "words": [ - "geocodingresponse", - "searchaddressresult", - "searchaddressreverseresponse" - ] - }, - { - "filename": "**/specification/maps/data-plane/Route/**", - "words": [ - "modelerfour" - ] - }, - { - "filename": "**/specification/communication/data-plane/Chat/**/communicationserviceschat.json", - "words": [ - "readreceipts", - "heic", - "webp" - ] - }, - { - "filename": "**/specification/saas/resource-manager/Microsoft.SaaS/preview/2018-03-01-beta/saas.json", - "words": [ - "saasresources" - ] - }, - { - "filename": "**/specification/hdinsight/hdinsight-kafka-rest-proxy/proxy.json", - "words": [ - "Metada" - ] - }, - { - "filename": "**/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json", - "words": [ - "saskey" - ] - }, - { - "filename": "**/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json", - "words": [ - "vmsize", - "vmsizes" - ] - }, - { - "filename": "**/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json", - "words": [ - "azureasyncoperations", - "saskey" - ] - }, - { - "filename": "**/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/locations.json", - "words": [ - "vmsize", - "vmsizes" - ] - }, - { - "filename": "**/specification/web/resource-manager/Microsoft.Web/**/CommonDefinitions.json", - "words": [ - "Guage" - ] - }, - { - "filename": "**/specification/confluent/resource-manager/Microsoft.Confluent/**/confluent.json", - "words": [ - "orgvalidate", - "AZUREBLOBSOURCE", - "AZUREBLOBSINK" - ] - }, - { - "filename": "**/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/**/service.json", - "words": [ - "Orignal", - "Seleted", - "targetvCenterId", - "esxi" - ] - }, - { - "filename": "**/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/**/bms.json", - "words": [ - "xcool" - ] - }, - { - "filename": "**/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/**/bms.json", - "words": [ - "HanaScaleoutContainer" - ] - }, - { - "filename": "**/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2021-10-15/iotdps.json", - "words": [ - "Messsage" - ] - }, - { - "filename": "**/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/**/*json", - "words": [ - "automigration", - "apsaradb", - "supabase" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/FormRecognizer/**/FormRecognizer.json", - "words": [ - "heif", - "spreadsheetml", - "presentationml", - "barcodes", - "UPCA", - "UPCE", - "Codabar", - "rrggbb" - ] - }, - { - "filename": "**/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json", - "words": [ - "documentintelligence", - "heif", - "spreadsheetml", - "presentationml", - "barcodes", - "UPCA", - "UPCE", - "Codabar", - "rrggbb" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/UnifiedVision/**/UnifiedVision.json", - "words": [ - "planogram", - "Planogram", - "productrecognition", - "imagecomposition", - "planogramcompliance" - ] - }, - { - "filename": "**/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-*/modelManagement.json", - "words": [ - "UNKNOWON" - ] - }, - { - "filename": "**/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2022-*-preview/machineLearningServices.json", - "words": [ - "Tmpfs", - "tmpfs", - "npipe" - ] - }, - { - "filename": "**/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/20*-preview/azure-ai-assets.json", - "words": [ - "genericasset" - ] - }, - { - "filename": "**/specification/dataprotection/resource-manager/Microsoft.DataProtection/**/dataprotection.json", - "words": [ - "PrepareTimedout", - "CommitTimedout" - ] - }, - { - "filename": "**/specification/purview/data-plane/Azure.Analytics.Purview.Workflow/preview/**/purviewWorkflow.json", - "words": [ - "userrequests", - "DSAR", - "dsar", - "workflowruns", - "workflowtasks" - ] - }, - { - "filename": "**/specification/translation/data-plane/**/*.json", - "words": [ - "autodetection", - "breaksentence", - "mosca", - "Transliterable", - "translitered" - ] - }, - { - "filename": "**/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/**/*.json", - "words": [ - "datareferences", - "Groundedness", - "AOAI", - "testconnection", - "aoai", - "SecretExpiry", - "expirableSecret", - "expireAfterHours", - "expire", - "expirable" - ] - }, - { - "filename": "**/specification/fist/resource-manager/Microsoft.IoTFirmwareDefense/**/*.json", - "words": [ - "RELRO", - "relro", - "rpath", - "runpath", - "SBOM", - "Sbom", - "sbom" - ] - }, - { - "filename": "**/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/**/*.json", - "words": [ - "Criterias", - "nwrfc", - "Abap", - "AGRTCODES", - "AGRUSERS", - "AGRPROF", - "ADCP", - "USGRPUSER", - "USERADDR", - "DEVACCESS", - "AGRDEFINE", - "PAHI", - "AGRAGRS", - "USRSTAMP", - "AGRFLAGS", - "SNCSYSACL", - "USRACL" - ] - }, - { - "filename": "**/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/**/*.json", - "words": [ - "Criterias", - "Mdti" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/AzureOpenAI/inference/preview/**/*.json", - "words": [ - "flac", - "mpga" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/AzureOpenAI/inference/stable/**/*.json", - "words": [ - "flac", - "FLAC", - "mpga", - "rerank" - ] - }, - { - "filename": "**/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2024-01-01-preview/appplatform.json", - "words": [ - "springboot" - ] - }, - { - "filename": "**/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/**/*.json", - "words": [ - "keyvaultkeyuri", - "throughputpool", - "dotproduct" - ] - }, - { - "filename": "**/specification/purview/data-plane/Azure.Analytics.Purview.DataMap/**/*.json", - "words": [ - "timerange" - ] - }, - { - "filename": "**/specification/healthdataaiservices/**/*.json", - "words": [ - "deidentification", - "deidentify", - "surrogation" - ] - }, - { - "filename": "**/specification/search/data-plane/Azure.Search/**/*.json", - "words": [ - "rerank", - "discretizing", - "subscores", - "vectorizing", - "onelake", - "tiktoken", - "Matryoshka", - "rescore", - "rescoring", - "rescored", - "maxcharlength", - "submode" - ] - }, - { - "filename": "**/specification/vi/resource-manager/Microsoft.VideoIndexer/**/*.json", - "words": [ - "videoindexer", - "viopenai" - ] - }, - { - "filename": "**/specification/nginx/resource-manager/NGINX.NGINXPLUS/**/*.json", - "words": [ - "nginx", - "nginxaas", - "NCUs", - "autoscaled", - "Autoupgrade", - "autoupgrade" - ] - }, - { - "filename": "**/specification/mobilenetwork/resource-manager/Microsoft.MobileNetwork/stable/**/*.json", - "words": [ - "suci" - ] - }, - { - "filename": "**/specification/containerservice/resource-manager/Microsoft.ContainerService/**/*.json", - "words": [ - "containerd" - ] - }, - { - "filename": "**/specification/batch/data-plane/Microsoft.Batch/**/*.json", - "words": [ - "upgradingos", - "TVMs" - ] - }, - { - "filename": "**/specification/batch/Azure.Batch/**/*.tsp", - "words": [ - "upgradingos", - "TVMs" - ] - }, - { - "filename": "**/specification/batch/data-plane/Azure.Batch/**/*.json", - "words": [ - "upgradingos", - "TVMs" - ] - }, - { - "filename": "**/specification/awsconnector/resource-manager/Microsoft.AwsConnector/**/*.json", - "words": [ - "ABAC", - "ACFP", - "ACMPCA", - "ACUs", - "assemblyline", - "autoprovision", - "Aviv", - "AWSACM", - "AWSACMPCA", - "AWSAPS", - "AWSDMS", - "AWSEC", - "AWSECR", - "AWSECS", - "AWSEFS", - "AWSEKS", - "AWSELB", - "AWSEMR", - "awsfirelens", - "AWSFIS", - "AWSIAM", - "AWSIAMSAML", - "AWSIVS", - "AWSKMS", - "awslogs", - "AWSM", - "AWSMSK", - "AWSQLDB", - "AWSRDS", - "AWSRDSDB", - "AWSRUM", - "AWSS", - "AWSSES", - "AWSSNS", - "AWSSQS", - "AWSSSM", - "awsvpc", - "AWSWAF", - "AWSX", - "binpack", - "buildspec", - "CFNS", - "CMAP", - "CMK's", - "CODECONNECTIONS", - "cooldowns", - "credentialspec", - "credentialspecdomainless", - "credspec", - "daxs", - "DCERPC", - "dd'T'HH", - "desync", - "diratime", - "dirsync", - "domainless", - "Dsse", - "dsse", - "Dtest", - "Dtestsecret", - "dualstack", - "EEZNYKUA", - "efgyghrtguk", - "Elong", - "emaccess", - "ENCHIPHERMENT", - "ENIs", - "FARGAT", - "Fargate", - "FDTNDATAQYW", - "Firelens", - "firelens", - "fluentbit", - "FOWNER", - "FPGAs", - "fpgas", - "FSETID", - "Fuota", - "Gelf", - "gelf", - "GENEVE", - "Geoproximity", - "healthcheck", - "hostedzone", - "hypens", - "IJCEXJP", - "Ilong", - "Inferentia", - "instancegroup", - "Intlong", - "IPAM's", - "Ipams", - "JDBC", - "kadmin", - "keytabs", - "logentries", - "lowercased", - "mand", - "maxage", - "MKNOD", - "mknod", - "Mlong", - "mpol", - "mqueue", - "mrap", - "MSAs", - "msgmax", - "msgmnb", - "msgmni", - "multicloud", - "multimaster", - "multivalue", - "Multivalue", - "myawslogbucket", - "mycluster", - "mydomain", - "mykeyspace", - "mymanaged", - "myprefix", - "myrepinstance", - "myselfmanaged", - "mytable", - "nfsvers", - "Ningxia", - "Nlong", - "noatime", - "nodegroup", - "Nodegroups", - "nodev", - "nodiratime", - "NOERROR", - "noexec", - "nohup", - "nomand", - "nondefault", - "norelatime", - "nostrictatime", - "nosuid", - "Nshort", - "oemagent", - "ONEZONE", - "PACCT", - "parallelquery", - "Paulo", - "Plong", - "preconfigures", - "PRERELEASED", - "PTRACE", - "Radeon", - "radeon", - "RAWIO", - "rbind", - "RDSCDB", - "redrive", - "relatime", - "resouce", - "retrans", - "rmid", - "Robo", - "rprivate", - "rshared", - "rsize", - "rslave", - "runbindable", - "SETFCAP", - "SETPCAP", - "shmall", - "shmmax", - "shmmni", - "SIEXAMPLE", - "slowquery", - "Sqli", - "sqli", - "sqlserver", - "ss'Z", - "strictatime", - "subdivisioncode", - "tierings", - "timeo", - "ulimits", - "Ultrawarm", - "ultrawarm", - "unbindable", - "untagging", - "Useds", - "VPC's", - "webacl", - "whitespaces", - "wihtin", - "workdir", - "wsize", - "xxdriver", - "xxlabel", - "xxopt" - ] - }, - { - "filename": "**/specification/confidentialledger/data-plane/Microsoft.CodeTransparency/preview/**/*.json", - "words": [ - "cbor", - "txids", - "operationid", - "scitt" - ] - }, - { - "filename": "**/specification/applicationinsights/data-plane/LiveMetrics/preview/2024-04-01-preview/livemetrics.json", - "words": [ - "LiveMetrics", - "QuickPulse", - "ikey", - "apikey", - "Comparand", - "SDK" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/ContentSafety/**/*.json", - "words": [ - "Groundedness", - "ungroundedness" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/Language/**/**/*.json", - "words": [ - "Meitei", - "Mtei", - "Olck", - "Shrd" - ] - }, - { - "filename": "**/specification/sqlvirtualmachine/resource-manager/Microsoft.SqlVirtualMachine/**/*.json", - "words": [ - "WUMU", - "WSUS" - ] - }, - { - "filename": "**/specification/riskiq/data-plane/Microsoft.Easm/preview/**/*.json", - "words": [ - "Cisa", - "cisa", - "affected", - "AUTOCONFIRMED" - ] - }, - { - "filename": "**/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/**/*.json", - "words": [ - "hotpatch" - ] - }, - { - "filename": "**/specification/monitor/resource-manager/Microsoft.Insights/**/actionGroups_API.json", - "words": [ - "occurringlocation", - "routingid", - "automitigationenabled", - "monitorid", - "tsgid", - "correlationid" - ] - }, - { - "filename": "**/specification/ai/data-plane/Face/**/*.json", - "words": [ - "headwear", - "realface", - "spoofface" - ] - }, - { - "filename": "**/specification/liftrpinecone/**/*.json", - "words": [ - "organizationname" - ] - }, - { - "filename": "**/specification/developerhub/resource-manager/Microsoft.DevHub/**/*.json", - "words": [ - "iacProfiles", - "iacProfile", - "IacProfiles", - "IacProfile", - "HCI", - "HCIAKS", - "HCIARCVM" - ] - }, - { - "filename": "**/specification/securityinsights/data-plane/Microsoft.SecurityInsights/**/*.json", - "words": [ - "threatintelligencestixobjects", - "stixobjects" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/AzureOpenAI/inference/preview/**/*.json", - "words": [ - "rerank" - ] - }, - { - "filename": "**/specification/ai/data-plane/HealthInsights/stable/**/openapi.json", - "words": [ - "Acrad", - "acrad", - "BIRADS", - "mednax", - "frax", - "extracolonic", - "ascvd", - "tyrer", - "cusick", - "agatston", - "ceus", - "HNPCC", - "kellgren", - "tonnis" - ] - }, - { - "filename": "**/specification/cognitiveservices/data-plane/AzureOpenAI/authoring/preview/**/*.json", - "words": [ - "wandb" - ] - }, - { - "filename": "**/specification/communication/data-plane/CallAutomation/**/*.json", - "words": [ - "unhold", - "Unhold", - "transferor's" - ] - }, - { - "filename": "**/specification/oracle/resource-manager/Oracle.Database/**/*.json", - "words": [ - "systemversionname" - ] - }, - { - "filename": "**/specification/developerhub/resource-manager/Microsoft.DevHub/preview/**/workflow.json", - "words": [ - "adooauth", - "ADOO" - ] - }, - { - "filename": "**/specification/iotoperations/resource-manager/Microsoft.IoTOperations/**/*.json", - "words": [ - "akri", - "opcua", - "websockets", - "opentelemetry", - "parquet", - "mqttbroker", - "schemaregistry" - ] - }, - { - "filename": "**/specification/servicefabricmanagedclusters/resource-manager/Microsoft.ServiceFabric/**/*.json", - "words": [ - "sfmc", - "sfmc's", - "regionname", - "sfmcdomain" - ] - }, - { - "filename": "**/specification/terraform/resource-manager/Microsoft.AzureTerraform/**/*.json", - "words": [ - "azurerm", - "azapi" - ] - }, - { - "filename": "**/specification/terraform/Microsoft.AzureTerraform.Management/**/*.tsp", - "words": [ - "azurerm", - "azapi" - ] - }, - { - "filename": "**/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/**/*.json", - "words": [ - "billables" - ] - }, - { - "filename": "**/specification/storage/data-plane/Microsoft.FileStorage/**/*.json", - "words": [ - "symboliclink", - "hardlink" - ] - }, - { - "filename": "**/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2023-09-01/costmanagement.pricesheets.json", - "words": [ - "Unitof" - ] - }, - { - "filename": "**/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2023-11-01/costmanagement.pricesheets.json", - "words": [ - "Unitof" - ] - }, - { - "filename": "**/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/**/*.json", - "words": [ - "SEVSNP" - ] - }, - { - "filename": "**/specification/connectedcache/resource-manager/Microsoft.ConnectedCache/preview/**/*.json", - "words": [ - "Eflow" - ] - }, - { - "filename": "**/specification/communication/data-plane/Sms/preview/**/*.json", - "words": [ - "optouts" - ] - }, - { - "filename": "**/specification/azure-kusto/resource-manager/Microsoft.Kusto/**/*.json", - "words": [ - "webapi", - "genevametrics" - ] - }, - { - "filename": "**/specification/compute/resource-manager/readme.md", - "words": [ - "Cloudservice" - ] - }, - { - "filename": "**/specification/**/readme.python.md", - "words": [ - "multiapiscript", - "modelerfour" - ] - }, - { - "filename": "**/specification/quota/resource-manager/readme.md", - "words": [ - "groupquota", - "modelerfour" - ] - }, - { - "filename": "**/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml", - "words": [ - "standbypool" - ] - }, - { - "filename": "**/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml", - "words": [ - "liftrpinecone", - "pineconevectordb" - ] - } - ], - "enableFiletypes": [ - "cadl" - ], - "ignoreWords": [ - "trafficcontrollerspec" - ] - -} diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000000..92f6461267c7 --- /dev/null +++ b/cspell.json @@ -0,0 +1,7 @@ +{ + "//purpose": "This file is needed for older spell check versions to specify the files to lint", + "version": "0.2", + "import": [ + "cspell.yaml" + ] +} diff --git a/cspell.yaml b/cspell.yaml new file mode 100644 index 000000000000..97ec0b0d871b --- /dev/null +++ b/cspell.yaml @@ -0,0 +1,54 @@ +version: '0.2' +language: en +flagWords: + - teh +ignorePaths: + - .github/CODEOWNERS* + - .github/policies/** + - '**/examples/**' + - '**/package-lock.json' + - cspell.json + - cspell.yaml + - eng/** + - node_modules/** +ignoreRegExpList: + - Base64 + - email + - v\d +minWordLength: 4 +dictionaries: + - companies + - csharp + - go + - html + - java + - node + - python + - softwareTerms + - typescript +enableFiletypes: + - cadl +allowCompoundWords: true +words: + - azext + - byos + - cadl + - contoso + - eastus + - entra + - fqdns + - hana + - kusto + - liftr + - localizable + - mbps + - mgmt + - odata + - onboarded + - payg + - regen + - rpaas + - skus + - vmss + - vnet + - westus diff --git a/documentation/ci-fix.md b/documentation/ci-fix.md index 6817fed14e02..59e8ae9043c8 100644 --- a/documentation/ci-fix.md +++ b/documentation/ci-fix.md @@ -41,7 +41,7 @@ If you need help with your specs PR, please first thoroughly read the [aka.ms/az - [`Swagger PrettierCheck`](#swagger-prettiercheck) - [Prettier reference](#prettier-reference) - [`Swagger SemanticValidation`](#swagger-semanticvalidation) - - [`Swagger SpellCheck`](#swagger-spellcheck) + - [`Spell Check`](#spell-check) - [`TypeSpec Validation`](#typespec-validation) - [Run `tsv` locally](#run-tsv-locally) - [`license/cla`](#licensecla) @@ -113,7 +113,7 @@ Various APIViews are generated as part of the Azure REST API specs PR build. Amo ### If an expected APIView was not generated, follow the step below to troubleshoot. - On the CI check click on `details` > `View Azure DevOps build log for more details` to view the devOps logs. -- Investigate the CI job for the languge with error. TypeSpec and Swagger APIViews are generated as part of the `AzureRestApiSpecsPipeline` stage in the `TypeSpecAPIView` and `SwaggerAPIView` jobs respectively, while APIViews for other SDK languges are generated in their respective language jobs in the `SDK Automation` stage. +- Investigate the CI job for the language with error. TypeSpec and Swagger APIViews are generated as part of the `AzureRestApiSpecsPipeline` stage in the `TypeSpecAPIView` and `SwaggerAPIView` jobs respectively, while APIViews for other SDK languages are generated in their respective language jobs in the `SDK Automation` stage. - Ensure that all previous checks in the job are green before proceeding. ### Diagnosing APIView failure for SDK Language (not Swagger or TypeSpec) @@ -247,35 +247,37 @@ oav validate-spec Please see [readme](https://github.com/Azure/oav/blob/bd04e228b4181c53769ed88e561dec5212e77253/README.md) for how to install or run tool in details. Refer to [Semantic and Model Violations Reference](https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/Semantic-and-Model-Violations-Reference.md) for detailed description of validations and how-to-fix guidance. -## `Swagger SpellCheck` - -If you receive a spelling failure either fix the spelling to match or if there are words that need to be suppressed for your service then add the word to the override list in [cspell.json](https://github.com/Azure/azure-rest-api-specs/blob/main/cSpell.json). Either -add to your existing section or create a new section for your specific spec or service family if the work is more generally used in lots of files under your service. - -``` yaml - "overrides": [ - ... example of specific file override - { - "filename": "**/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json", - "words": [ - "saskey" - ] - } - ... example of specific service family override - { - "filename": "**/specification/cognitiveservices/**/*.json", - "words": [ - "flac", - "mpga" - ] - } -``` +## Spell Check + +If you receive a spelling failure, first try to fix the spelling in source. + +If there are new words that need to be supported for your service, add the word to the override list in the `words` list in +the `specification//cspell.yaml` file for your service. Specific files can also be overridden using the +`override` field in your service's `cspell.yaml` file (see example below). + +If the `specification//cspell.yaml` file does not exist, create it using the example below and set the `words` +and `overrides` fields to the words that need to be suppressed. The `import` field is *required*. -Words are case-insensitive so use lower case for the word list. +For example (note the words list is sorted alphabetically): + +```yaml +import: + - ../../cspell.yaml +words: + - aardvark + - zoology + +# Optional overrides example for words in a specific file +overrides: + - filename: '**/specification/contosowidgetmanager/somefile.yaml' + words: + - aardwolf + - zoo +``` -If you need more information on see [cspell configuration](https://cspell.org/configuration/). +Spell checking is *case-insensitive* so you only need to add a word once in lower-case. Try to kept the word list sorted for easier discovery. -*Note*: We are trying to move away from one shared dictionary file so try and avoid editing custom-words.txt in the root as it will likely go away in the future. +For more information see [cspell configuration](https://cspell.org/configuration/). ## `TypeSpec Validation` diff --git a/documentation/cspell.yaml b/documentation/cspell.yaml new file mode 100644 index 000000000000..a0317d55c50e --- /dev/null +++ b/documentation/cspell.yaml @@ -0,0 +1,59 @@ +version: '0.2' +import: + - ../cspell.yaml + +# TODO: Many of these words are spelling errors and should be corrected in the +# relevant documentation files. +words: + - accuractly + - agrifood + - arjun + - azsdk + - azurecr + - brch + - chenjie + - commmand + - compliation + - contosowidgetmanager + - decenmber + - depedency + - dicriminator + - flim + - follwoing + - genereated + - ikey + - ipconfigmy + - lanaguages + - lanaguge + - lanauge + - mikekistler + - msyyc + - mypath + - nreplace + - onboards + - openai + - operationid + - poli + - prcoess + - prerequisits + - pwsh + - qiaoqiao + - qiaozha + - ragrs + - requsite + - restler + - restlerfuzzer + - rpns + - sdkgeneration + - sepcs + - snuget + - subcription + - tadelesh + - testrg + - tldr + - tler + - weidongxu + - westcentralus + - yeming + - yuchao + - zhang diff --git a/specification/addons/cspell.yaml b/specification/addons/cspell.yaml new file mode 100644 index 000000000000..1a7760dbf6d5 --- /dev/null +++ b/specification/addons/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armaddons + diff --git a/specification/adhybridhealthservice/cspell.yaml b/specification/adhybridhealthservice/cspell.yaml new file mode 100644 index 000000000000..53bf5fb27cc2 --- /dev/null +++ b/specification/adhybridhealthservice/cspell.yaml @@ -0,0 +1,26 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - addomainservicemembers + - adfs + - adhybridhealthservice + - onboards + - onpremises + - qfes + - sysvol +overrides: + - filename: >- + **/specification/adhybridhealthservice/resource-manager/Microsoft.ADHybridHealthService/stable/2014-01-01/ADHybridHealthService.json + words: + - addomain + - availibility + - modififed + - mpping + - occured + diff --git a/specification/advisor/cspell.yaml b/specification/advisor/cspell.yaml new file mode 100644 index 000000000000..156fb458906e --- /dev/null +++ b/specification/advisor/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - asssignment + - unlocalized + diff --git a/specification/agrifood/cspell.yaml b/specification/agrifood/cspell.yaml new file mode 100644 index 000000000000..feb060897e3f --- /dev/null +++ b/specification/agrifood/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - agfood + - agri + - agrifood + - madma + - ndvi + - ndwi + - sinergise + - stac + diff --git a/specification/ai/cspell.yaml b/specification/ai/cspell.yaml new file mode 100644 index 000000000000..f623416b7ea8 --- /dev/null +++ b/specification/ai/cspell.yaml @@ -0,0 +1,76 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - acrad + - agatston + - apim + - ascvd + - birads + - ceus + - cusick + - dicom + - fhir + - findsimilars + - frax + - hnpcc + - interventional + - kellgren + - loinc + - mednax + - onco + - oncophenotype + - openai + - presentationml + - reslution + - rrggbb + - snomed + - spreadsheetml + - supress + - tcgc + - telehealth + - tonnis + - tyrer + - umls + - upca + - upce + - wordprocessingml +overrides: + - filename: >- + **/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json + words: + - barcodes + - codabar + - documentintelligence + - heif + - presentationml + - rrggbb + - spreadsheetml + - upca + - upce + - filename: '**/specification/ai/data-plane/Face/**/*.json' + words: + - headwear + - realface + - spoofface + - filename: '**/specification/ai/data-plane/HealthInsights/stable/**/openapi.json' + words: + - acrad + - agatston + - ascvd + - birads + - ceus + - cusick + - extracolonic + - frax + - hnpcc + - kellgren + - mednax + - tonnis + - tyrer + diff --git a/specification/alertsmanagement/cspell.yaml b/specification/alertsmanagement/cspell.yaml new file mode 100644 index 000000000000..3820ad370e35 --- /dev/null +++ b/specification/alertsmanagement/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - gosdk + - groupedby + - scom + - zabbix + diff --git a/specification/analysisservices/cspell.yaml b/specification/analysisservices/cspell.yaml new file mode 100644 index 000000000000..b3aeb6a2d627 --- /dev/null +++ b/specification/analysisservices/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dmts + diff --git a/specification/apicenter/cspell.yaml b/specification/apicenter/cspell.yaml new file mode 100644 index 000000000000..b5c5b05e2040 --- /dev/null +++ b/specification/apicenter/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ondemand + diff --git a/specification/apimanagement/cspell.yaml b/specification/apimanagement/cspell.yaml new file mode 100644 index 000000000000..50618233df09 --- /dev/null +++ b/specification/apimanagement/cspell.yaml @@ -0,0 +1,80 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apim + - apimapis + - apimapiversionsets + - apimauthorizationproviders + - apimauthorizationservers + - apimbackends + - apimcaches + - apimcertificates + - apimconnectivitycheck + - apimcontenttypes + - apimdeletedservices + - apimdeployment + - apimdiagnostics + - apimdocumentations + - apimgateway + - apimgateways + - apimgroups + - apimissues + - apimloggers + - apimmsi + - apimnamedvalues + - apimnetworkstatus + - apimnotifications + - apimoutbounddependency + - apimpolicies + - apimpolicydescriptions + - apimpolicyfragments + - apimpolicyrestrictions + - apimpolicyrestrictionsvalidation + - apimpolicysnippets + - apimportalconfigs + - apimportalrevisions + - apimportalsettings + - apimprivatelink + - apimproducts + - apimproperties + - apimquotas + - apimregions + - apimreports + - apimschema + - apimsettings + - apimskus + - apimsubscriptions + - apimtagresources + - apimtags + - apimtenant + - apimversionsets + - apimworkspacebackends + - apimworkspacecertificates + - apimworkspacediagnostics + - apimworkspacelinks + - apimworkspaceloggers + - apimworkspaces + - backendid + - loggerid + - onmicrosoft + - opid + - signin + - signup + - substringof + - undelete + - vnetid + - wadl +overrides: + - filename: >- + **/specification/apimanagement/resource-manager/Microsoft.ApiManagement/stable/2017-03-01/apimapis.json + words: + - attachmentss + - commentss + - issu + diff --git a/specification/app/cspell.yaml b/specification/app/cspell.yaml new file mode 100644 index 000000000000..19addd9ffe14 --- /dev/null +++ b/specification/app/cspell.yaml @@ -0,0 +1,25 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - createor + - dapr + - keda + - mtls + - nacos + - occured + - otlp +overrides: + - filename: >- + **/specification/app/resource-manager/Microsoft.App/preview/2023-11-02-preview/ManagedEnvironments.json + words: + - otlp + - filename: '**/specification/app/resource-manager/Microsoft.App/**/*.json' + words: + - workflowapp + diff --git a/specification/appcomplianceautomation/cspell.yaml b/specification/appcomplianceautomation/cspell.yaml new file mode 100644 index 000000000000..ae2d67947a3f --- /dev/null +++ b/specification/appcomplianceautomation/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - guids + - seleted + diff --git a/specification/appconfiguration/cspell.yaml b/specification/appconfiguration/cspell.yaml new file mode 100644 index 000000000000..151c181a682c --- /dev/null +++ b/specification/appconfiguration/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - keyvaluena + - kvset + - packge + - restler + diff --git a/specification/applicationinsights/cspell.yaml b/specification/applicationinsights/cspell.yaml new file mode 100644 index 000000000000..7efd23f0f0f6 --- /dev/null +++ b/specification/applicationinsights/cspell.yaml @@ -0,0 +1,38 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - aiapi + - appliation + - edmx + - ikey + - intervaled + - myanalytics + - myworkbooks + - qssw + - vsts + - xvcj +overrides: + - filename: >- + **/specification/applicationinsights/resource-manager/Microsoft.Insights/stable/2015-05-01/componentFeaturesAndPricing_API.json + words: + - resouce + - filename: >- + **/specification/applicationinsights/resource-manager/Microsoft.Insights/preview/2017-10-01/eaSubscriptionMigration_API.json + words: + - migrationdate + - filename: >- + **/specification/applicationinsights/data-plane/LiveMetrics/preview/2024-04-01-preview/livemetrics.json + words: + - apikey + - comparand + - ikey + - livemetrics + - quickpulse + - sdk + diff --git a/specification/appplatform/cspell.yaml b/specification/appplatform/cspell.yaml new file mode 100644 index 000000000000..898884addc0f --- /dev/null +++ b/specification/appplatform/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apms + - dynatrace + - oidc +overrides: + - filename: >- + **/specification/appplatform/resource-manager/Microsoft.AppPlatform/preview/2024-01-01-preview/appplatform.json + words: + - springboot + diff --git a/specification/attestation/cspell.yaml b/specification/attestation/cspell.yaml new file mode 100644 index 000000000000..72fd59e1a5c6 --- /dev/null +++ b/specification/attestation/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - jwks + - mrenclave + - mrsigner + - tcbbaselines + diff --git a/specification/authorization/cspell.yaml b/specification/authorization/cspell.yaml new file mode 100644 index 000000000000..c5f1fca129eb --- /dev/null +++ b/specification/authorization/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - rgname + diff --git a/specification/automanage/cspell.yaml b/specification/automanage/cspell.yaml new file mode 100644 index 000000000000..8e441aaf8088 --- /dev/null +++ b/specification/automanage/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hcrp + diff --git a/specification/automation/cspell.yaml b/specification/automation/cspell.yaml new file mode 100644 index 000000000000..a7610e0b416e --- /dev/null +++ b/specification/automation/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - enein + - tfvc + - updation +overrides: + - filename: >- + **/specification/automation/resource-manager/Microsoft.Automation/preview/2017-05-15-preview/softwareUpdateConfigurationRun.json + words: + - softare + diff --git a/specification/awsconnector/cspell.yaml b/specification/awsconnector/cspell.yaml new file mode 100644 index 000000000000..6f6c3bf50c40 --- /dev/null +++ b/specification/awsconnector/cspell.yaml @@ -0,0 +1,298 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - abac + - activecsharp + - awsaps + - awsec + - awselb + - awsemr + - awsfis + - awsm + - awsmsk + - awsrdsdb + - awss + - cfns + - cmap + - daxs + - dcerpc + - deregistration + - desync + - devpay + - dsse + - efgyghrtguk + - emaccess + - enchipherment + - fdtndataqyw + - fhir + - fluentd + - fowner + - fsetid + - fuota + - gbps + - gelf + - gibibytes + - hdfs + - idcsharp + - iedn + - iezn + - ijcexjp + - imds + - inferentia + - informations + - ipam + - ipams + - jdbc + - kadmin + - mebibytes + - mibps + - mknod + - mqueue + - msgmnb + - msgmni + - myawslogbucket + - mydomain + - mymanaged + - myprefix + - myrepinstance + - nfsvers + - ningxia + - nlong + - noerror + - nohup + - nshort + - occured + - ocsp + - odbc + - oemagent + - oidc + - pacct + - ptrace + - rawio + - rdscdb + - resouce + - retrans + - rmid + - rootfs + - rsize + - secg + - secp + - servcie + - setfcap + - setpcap + - shmall + - shmmax + - shmmni + - siexample + - sriov + - supress + - sysctls + - timeo + - tmpfs + - uefi + - ulimits + - untagging + - useds + - vcpu + - wihtin + - wsize + - xlarge + - xvdh + - xxdriver + - xxopt +overrides: + - filename: >- + **/specification/awsconnector/resource-manager/Microsoft.AwsConnector/**/*.json + words: + - abac + - acfp + - acmpca + - acus + - assemblyline + - autoprovision + - aviv + - awsacm + - awsacmpca + - awsaps + - awsdms + - awsec + - awsecr + - awsecs + - awsefs + - awseks + - awselb + - awsemr + - awsfirelens + - awsfis + - awsiam + - awsiamsaml + - awsivs + - awskms + - awslogs + - awsm + - awsmsk + - awsqldb + - awsrds + - awsrdsdb + - awsrum + - awss + - awsses + - awssns + - awssqs + - awsssm + - awsvpc + - awswaf + - awsx + - binpack + - buildspec + - cfns + - cmap + - cmk's + - codeconnections + - cooldowns + - credentialspec + - credentialspecdomainless + - credspec + - daxs + - dcerpc + - dd't'hh + - desync + - diratime + - dirsync + - domainless + - dsse + - dtest + - dtestsecret + - dualstack + - eeznykua + - efgyghrtguk + - elong + - emaccess + - enchipherment + - enis + - fargat + - fargate + - fdtndataqyw + - firelens + - fluentbit + - fowner + - fpgas + - fsetid + - fuota + - gelf + - geneve + - geoproximity + - healthcheck + - hostedzone + - hypens + - ijcexjp + - ilong + - inferentia + - instancegroup + - intlong + - ipam's + - ipams + - jdbc + - kadmin + - keytabs + - logentries + - lowercased + - mand + - maxage + - mknod + - mlong + - mpol + - mqueue + - mrap + - msas + - msgmax + - msgmnb + - msgmni + - multicloud + - multimaster + - multivalue + - myawslogbucket + - mycluster + - mydomain + - mykeyspace + - mymanaged + - myprefix + - myrepinstance + - myselfmanaged + - mytable + - nfsvers + - ningxia + - nlong + - noatime + - nodegroup + - nodegroups + - nodev + - nodiratime + - noerror + - noexec + - nohup + - nomand + - nondefault + - norelatime + - nostrictatime + - nosuid + - nshort + - oemagent + - onezone + - pacct + - parallelquery + - paulo + - plong + - preconfigures + - prereleased + - ptrace + - radeon + - rawio + - rbind + - rdscdb + - redrive + - relatime + - resouce + - retrans + - rmid + - robo + - rprivate + - rshared + - rsize + - rslave + - runbindable + - setfcap + - setpcap + - shmall + - shmmax + - shmmni + - siexample + - slowquery + - sqli + - sqlserver + - ss'z + - strictatime + - subdivisioncode + - tierings + - timeo + - ulimits + - ultrawarm + - unbindable + - untagging + - useds + - vpc's + - webacl + - whitespaces + - wihtin + - workdir + - wsize + - xxdriver + - xxlabel + - xxopt + diff --git a/specification/azsadmin/cspell.yaml b/specification/azsadmin/cspell.yaml new file mode 100644 index 000000000000..635de2fac904 --- /dev/null +++ b/specification/azsadmin/cspell.yaml @@ -0,0 +1,23 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - acquisitionid + - adfs + - azpkg + - bmcip + - ddagpu + - dnsip + - gpup + - nics + - ragrs + - susbcriptionid + - undelete + - vnets + diff --git a/specification/azure-kusto/cspell.yaml b/specification/azure-kusto/cspell.yaml new file mode 100644 index 000000000000..f13577254368 --- /dev/null +++ b/specification/azure-kusto/cspell.yaml @@ -0,0 +1,27 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apacheavro + - armkusto + - clustern + - managedp + - openai + - principa + - privatee + - privatel + - scriptna + - scsv + - sohsv + - tsve +overrides: + - filename: '**/specification/azure-kusto/resource-manager/Microsoft.Kusto/**/*.json' + words: + - genevametrics + - webapi + diff --git a/specification/azureactivedirectory/cspell.yaml b/specification/azureactivedirectory/cspell.yaml new file mode 100644 index 000000000000..1e5ddd5d1b7a --- /dev/null +++ b/specification/azureactivedirectory/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - aadiam + - armaad + - viruela + diff --git a/specification/azurearcdata/cspell.yaml b/specification/azurearcdata/cspell.yaml new file mode 100644 index 000000000000..b79953bcd930 --- /dev/null +++ b/specification/azurearcdata/cspell.yaml @@ -0,0 +1,27 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - hadr + - ntlm + - onpremises + - sqlvm + - wsfc +overrides: + - filename: >- + **/specification/azurearcdata/resource-manager/Microsoft.AzureArcData/**/*.json + words: + - azurearcdata + - filename: >- + **/specification/azurearcdata/resource-manager/Microsoft.AzureArcData/preview/**/*.json + words: + - pbirs + - ssas + - ssis + - ssrs + diff --git a/specification/azuredata/cspell.yaml b/specification/azuredata/cspell.yaml new file mode 100644 index 000000000000..80c5847514bd --- /dev/null +++ b/specification/azuredata/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ahub + - byol + diff --git a/specification/azuredatatransfer/cspell.yaml b/specification/azuredatatransfer/cspell.yaml new file mode 100644 index 000000000000..0b6b8866df2d --- /dev/null +++ b/specification/azuredatatransfer/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - azuredatatransferrp + diff --git a/specification/azurefleet/cspell.yaml b/specification/azurefleet/cspell.yaml new file mode 100644 index 000000000000..19bec42cf70f --- /dev/null +++ b/specification/azurefleet/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - iloveyou + - ipconfiguration + - nrdma + - nvme + - rdma + - reimaged + - sles + - uefi + - unattend + - vhds + - waagent + diff --git a/specification/azurelargeinstance/cspell.yaml b/specification/azurelargeinstance/cspell.yaml new file mode 100644 index 000000000000..e651068f2e3c --- /dev/null +++ b/specification/azurelargeinstance/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - sdflex + diff --git a/specification/azurestack/cspell.yaml b/specification/azurestack/cspell.yaml new file mode 100644 index 000000000000..361dd36c115b --- /dev/null +++ b/specification/azurestack/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - adfs + - azpkg + - dsms + diff --git a/specification/azurestackhci/cspell.yaml b/specification/azurestackhci/cspell.yaml new file mode 100644 index 000000000000..e6b603770027 --- /dev/null +++ b/specification/azurestackhci/cspell.yaml @@ -0,0 +1,30 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adou + - armstackhcivm + - azurestackhci + - drtm + - hcivm + - hvci + - imds + - mitigations + - rdma + - sdkauto + - sevsnp + - stackhcivm + - uefi + - vhdx + - wdac +overrides: + - filename: >- + **/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/**/*.json + words: + - sevsnp + diff --git a/specification/baremetalinfrastructure/cspell.yaml b/specification/baremetalinfrastructure/cspell.yaml new file mode 100644 index 000000000000..e651068f2e3c --- /dev/null +++ b/specification/baremetalinfrastructure/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - sdflex + diff --git a/specification/batch/cspell.yaml b/specification/batch/cspell.yaml new file mode 100644 index 000000000000..630a35159ac5 --- /dev/null +++ b/specification/batch/cspell.yaml @@ -0,0 +1,46 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - cifs + - dsmax + - gibibytes + - lro's + - noaction + - nodeagentskus + - nopublicipaddresses + - ocpbatchfileisdirectory + - ocpbatchfilemode + - ocpbatchfileurl + - ocpcreationtime + - ocpdate + - osdisk + - reimage + - reimaged + - reimaging + - requestid + - ssdlrs + - standardssd + - uefi + - unvalidated + - upgradeos + - vray +overrides: + - filename: '**/specification/batch/data-plane/Microsoft.Batch/**/*.json' + words: + - tvms + - upgradingos + - filename: '**/specification/batch/Azure.Batch/**/*.tsp' + words: + - tvms + - upgradingos + - filename: '**/specification/batch/data-plane/Azure.Batch/**/*.json' + words: + - tvms + - upgradingos + diff --git a/specification/billing/cspell.yaml b/specification/billing/cspell.yaml new file mode 100644 index 000000000000..855068deecbf --- /dev/null +++ b/specification/billing/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - puid + - unbilled +overrides: + - filename: '**/specification/billing/**/*.json' + words: + - cnpj + - mosp + - resellee + diff --git a/specification/botservice/cspell.yaml b/specification/botservice/cspell.yaml new file mode 100644 index 000000000000..5da8f0b193bc --- /dev/null +++ b/specification/botservice/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - alexa + - cmek + - omnichannel + diff --git a/specification/cdn/cspell.yaml b/specification/cdn/cspell.yaml new file mode 100644 index 000000000000..e45c27a91bb3 --- /dev/null +++ b/specification/cdn/cspell.yaml @@ -0,0 +1,21 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - afdprofile + - afdx + - apac + - armcdn + - byoc + - cdnwebapplicationfirewall + - mtls + - mypicture + - mypictures + - ocsp + diff --git a/specification/changeanalysis/cspell.yaml b/specification/changeanalysis/cspell.yaml new file mode 100644 index 000000000000..b8658d39353f --- /dev/null +++ b/specification/changeanalysis/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - rpns + diff --git a/specification/cloudshell/cspell.yaml b/specification/cloudshell/cspell.yaml new file mode 100644 index 000000000000..0a6ca6b87686 --- /dev/null +++ b/specification/cloudshell/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - pwsh + diff --git a/specification/cognitiveservices/cspell.yaml b/specification/cognitiveservices/cspell.yaml new file mode 100644 index 000000000000..6dc86a784dfb --- /dev/null +++ b/specification/cognitiveservices/cspell.yaml @@ -0,0 +1,247 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adto + - alon + - aoai + - aoairesource + - apim + - armn + - asssignment + - asturian + - azureopenai + - bangla + - bbqwy + - bingapis + - bingautosuggest + - bingcustomimagesearch + - bingcustomsearch + - bingentitysearch + - bingimagesearch + - bingnewssearch + - bingspellcheck + - bingvideosearch + - bingvisualsearch + - bingwebsearch + - brcpf + - centraluseuap + - chatcmpl + - contosodataset + - copyto + - coreml + - dall + - dalle + - davinci + - dbauth + - ddthh + - deduping + - diarization + - dsgouda + - esdni + - ethi + - eugps + - fadein + - featurization + - featurized + - featurizer + - fhir + - findsimilars + - flac + - geor + - gifs + - granularities + - grek + - gujr + - hani + - hebr + - hierarchicals + - hsqc + - idrg + - importances + - inclusivity + - infomration + - informations + - intial + - johanste + - jpan + - jsonld + - k’iche + - kabuverdianu + - kachin + - kashubian + - kbps + - khmr + - khtml + - knda + - laoo + - listprebuilts + - logit + - logprobs + - lumia + - luxembourgish + - mappping + - meitei + - mlym + - mpga + - mtei + - myaudio + - mymr + - nsku + - occitan + - odia + - olck + - onnx + - openai + - organisation + - orya + - personalizer + - petabit + - petabits + - picometer + - picometers + - plregon + - prebuilts + - probs + - qnamaker + - qnamakerruntime + - qnas + - regon + - reognizer + - rerank + - rpns + - shahabhijeet + - shrd + - signup + - southcentralus + - ssml + - supress + - taml + - telu + - tetum + - texttospeech + - thaa + - tibt + - uksouth + - umls + - unpublish + - usuk + - vaidk + - vectorize + - vectorizer + - verison + - volapük + - vsfb + - wandb + - webm + - webvtt + - westcentralus + - wordprocessingml + - yucatec + - zhuang +overrides: + - filename: >- + **/specification/cognitiveservices/data-plane/EntitySearch/stable/v1.0/EntitySearch.json + words: + - speciality + - filename: '**/specification/cognitiveservices/data-plane/Face/stable/v1.0/Face.json' + words: + - addfacefromurl + - deleteface + - detectwithstream + - detectwithurl + - facelist + - findsimilar + - getface + - largefacelist + - largepersongroup + - largepersongroupperson + - persongroup + - persongroupperson + - verifyfacetoface + - filename: >- + **/specification/cognitiveservices/data-plane/TextAnalytics/preview/v2.1/TextAnalytics.json + words: + - atascada + - ayer + - carretera + - estaba + - había + - mucho + - tráfico + - filename: >- + **/specification/cognitiveservices/data-plane/TextAnalytics/stable/v2.0/TextAnalytics.json + words: + - atascada + - ayer + - carretera + - estaba + - había + - mucho + - tráfico + - filename: >- + **/specification/cognitiveservices/data-plane/TranslatorText/stable/v3.0/TranslatorText.json + words: + - bicho + - jpan + - konnichiha + - mosca + - nein + - filename: >- + **/specification/cognitiveservices/data-plane/Speech/VideoTranslation/preview/2024-05-20-preview/VideoTranslation.json + words: + - videotranslation + - webvtt + - filename: >- + **/specification/cognitiveservices/data-plane/FormRecognizer/**/FormRecognizer.json + words: + - barcodes + - codabar + - heif + - presentationml + - rrggbb + - spreadsheetml + - upca + - upce + - filename: >- + **/specification/cognitiveservices/data-plane/UnifiedVision/**/UnifiedVision.json + words: + - imagecomposition + - planogram + - planogramcompliance + - productrecognition + - filename: >- + **/specification/cognitiveservices/data-plane/AzureOpenAI/inference/preview/**/*.json + words: + - flac + - mpga + - filename: >- + **/specification/cognitiveservices/data-plane/AzureOpenAI/inference/stable/**/*.json + words: + - flac + - mpga + - rerank + - filename: '**/specification/cognitiveservices/data-plane/ContentSafety/**/*.json' + words: + - groundedness + - ungroundedness + - filename: '**/specification/cognitiveservices/data-plane/Language/**/**/*.json' + words: + - meitei + - mtei + - olck + - shrd + - filename: >- + **/specification/cognitiveservices/data-plane/AzureOpenAI/inference/preview/**/*.json + words: + - rerank + - filename: >- + **/specification/cognitiveservices/data-plane/AzureOpenAI/authoring/preview/**/*.json + words: + - wandb + diff --git a/specification/common-types/cspell.yaml b/specification/common-types/cspell.yaml new file mode 100644 index 000000000000..a3529fa1f7be --- /dev/null +++ b/specification/common-types/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - mobo + - pkix + - unversioned + diff --git a/specification/communication/cspell.yaml b/specification/communication/cspell.yaml new file mode 100644 index 000000000000..76433f41139e --- /dev/null +++ b/specification/communication/cspell.yaml @@ -0,0 +1,39 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - communicationservicessms + - dmarc + - gcch + - msvideo + - pstn + - revist + - rpmsg + - rtmp + - ssml + - unassigning + - unassignment + - unassigns + - vsonline + - vsts + - xlsb +overrides: + - filename: >- + **/specification/communication/data-plane/Chat/**/communicationserviceschat.json + words: + - heic + - readreceipts + - webp + - filename: '**/specification/communication/data-plane/CallAutomation/**/*.json' + words: + - transferor's + - unhold + - filename: '**/specification/communication/data-plane/Sms/preview/**/*.json' + words: + - optouts + diff --git a/specification/compute/cspell.yaml b/specification/compute/cspell.yaml new file mode 100644 index 000000000000..ccaf4546626a --- /dev/null +++ b/specification/compute/cspell.yaml @@ -0,0 +1,59 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - cdrp + - cscfg + - csdef + - dcos + - dscp + - iloveyou + - imds + - ipconfiguration + - kbid + - mesos + - nvme + - osdisk + - osdiskforlinuxsimple + - osdiskforwindowssimple + - reimage + - reimageall + - reimaged + - reimages + - reimaging + - salinuxvm + - sawinvm + - sles + - ssdzrs + - swappable + - uefi + - unattend + - vhds + - vhdx + - vmextension + - vmimage + - vmimages + - vmos + - waagent +overrides: + - filename: >- + **/specification/compute/resource-manager/Microsoft.ContainerService/preview/2015-11-01-preview/containerService.json + words: + - ochestrator + - filename: >- + **/specification/compute/resource-manager/Microsoft.ContainerService/stable/2016-03-30/containerService.json + words: + - ochestrator + - filename: >- + **/specification/compute/resource-manager/Microsoft.ContainerService/stable/2016-09-30/containerService.json + words: + - ochestrator + - filename: '**/specification/compute/resource-manager/readme.md' + words: + - cloudservice + diff --git a/specification/computeschedule/cspell.yaml b/specification/computeschedule/cspell.yaml new file mode 100644 index 000000000000..310f136f7252 --- /dev/null +++ b/specification/computeschedule/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - correlationid + - occurence + - operationid + - suceeded + diff --git a/specification/confidentialledger/cspell.yaml b/specification/confidentialledger/cspell.yaml new file mode 100644 index 000000000000..68439d42e514 --- /dev/null +++ b/specification/confidentialledger/cspell.yaml @@ -0,0 +1,30 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - acks + - cbor + - jsgov + - jwts + - managedccf + - mccf + - mccfgov + - merkle + - mrenclave + - oeverify + - pkix + - scitt +overrides: + - filename: >- + **/specification/confidentialledger/data-plane/Microsoft.CodeTransparency/preview/**/*.json + words: + - cbor + - operationid + - scitt + - txids + diff --git a/specification/confluent/cspell.yaml b/specification/confluent/cspell.yaml new file mode 100644 index 000000000000..211d095144d8 --- /dev/null +++ b/specification/confluent/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - byok +overrides: + - filename: >- + **/specification/confluent/resource-manager/Microsoft.Confluent/**/confluent.json + words: + - azureblobsink + - azureblobsource + - orgvalidate + diff --git a/specification/connectedcache/cspell.yaml b/specification/connectedcache/cspell.yaml new file mode 100644 index 000000000000..92633eda8c47 --- /dev/null +++ b/specification/connectedcache/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - createor + - eflow + - gbps + - signup +overrides: + - filename: >- + **/specification/connectedcache/resource-manager/Microsoft.ConnectedCache/preview/**/*.json + words: + - eflow + diff --git a/specification/connectedvmware/cspell.yaml b/specification/connectedvmware/cspell.yaml new file mode 100644 index 000000000000..2df5e0fdfb5a --- /dev/null +++ b/specification/connectedvmware/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - connectedvmware + - ctlr + - ipsettings + - lsilogic + - lsilogicsas + - pcnet + - pmem + - pvscsi + - sesparse + - uefi + - vcenters + diff --git a/specification/consumption/cspell.yaml b/specification/consumption/cspell.yaml new file mode 100644 index 000000000000..7645c9447f8b --- /dev/null +++ b/specification/consumption/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - guids + - jianyexi + - unbilled + diff --git a/specification/containerinstance/cspell.yaml b/specification/containerinstance/cspell.yaml new file mode 100644 index 000000000000..aaf569ced73b --- /dev/null +++ b/specification/containerinstance/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - kubelet + - noreuse +overrides: + - filename: >- + **/specification/containerinstance/resource-manager/Microsoft.ContainerInstance/preview/**/containerInstance.json + words: + - ngroups + - transactionoptimized + diff --git a/specification/containerregistry/cspell.yaml b/specification/containerregistry/cspell.yaml new file mode 100644 index 000000000000..8116cdb48e97 --- /dev/null +++ b/specification/containerregistry/cspell.yaml @@ -0,0 +1,45 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - acrapi + - azurecr + - bcwg + - ewdg + - eywq + - goarch + - illumos + - lfot + - lqup + - mipsle + - myregistry + - nouploadcache + - rootfs + - sllb + - verison + - vfyc + - vmqs + - wgxm + - wwkz + - ywhk +overrides: + - filename: >- + **/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2018-08-10/containerregistry.json + words: + - bcwg + - ewdg + - eywq + - lfot + - lqup + - sllb + - vfyc + - vmqs + - wgxm + - wwkz + - ywhk + diff --git a/specification/containerservice/cspell.yaml b/specification/containerservice/cspell.yaml new file mode 100644 index 000000000000..902d57299d34 --- /dev/null +++ b/specification/containerservice/cspell.yaml @@ -0,0 +1,70 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ahub + - azpodpolicy + - cuda + - dcos + - ebpf + - gmsa + - iloveyou + - imds + - intvl + - ipvs + - istio + - karpenter + - kata + - keda + - krustlet + - kubelet + - kubenet + - kubenet's + - mshv + - numa + - ochestrator + - oidc + - ossku + - pids + - reimaged + - reimaging + - rmem + - schedulable + - snat + - sysctls + - tcpkeepalive + - vhds + - wmem +overrides: + - filename: >- + **/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2016-03-30/containerService.json + words: + - ochestrator + - filename: >- + **/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2016-09-30/containerService.json + words: + - ochestrator + - filename: >- + **/specification/containerservice/resource-manager/Microsoft.ContainerInstance/stable/2021-10-01/containerInstance.json + words: + - noreuse + - filename: >- + **/specification/containerservice/resource-manager/Microsoft.ContainerService/aks/**/*json + words: + - acnstls + - aksadvancednetworking + - kubeletidentity + - pdbs + - trustedlaunch + - undrainable + - vtpm + - filename: >- + **/specification/containerservice/resource-manager/Microsoft.ContainerService/**/*.json + words: + - containerd + diff --git a/specification/containerstorage/cspell.yaml b/specification/containerstorage/cspell.yaml new file mode 100644 index 000000000000..af45901a9304 --- /dev/null +++ b/specification/containerstorage/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - iscsi + - unassigning + - vsts + diff --git a/specification/contosowidgetmanager/cspell.yaml b/specification/contosowidgetmanager/cspell.yaml new file mode 100644 index 000000000000..6ba594cb0fe5 --- /dev/null +++ b/specification/contosowidgetmanager/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armcontoso + - contosowidgetmanager + diff --git a/specification/cosmos-db/cspell.yaml b/specification/cosmos-db/cspell.yaml new file mode 100644 index 000000000000..c7964896b69e --- /dev/null +++ b/specification/cosmos-db/cspell.yaml @@ -0,0 +1,23 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - colls + - miliseconds + - msrest + - outputm + - pitr + - tablerbac + - undelete +overrides: + - filename: '**/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/**/*.json' + words: + - dotproduct + - keyvaultkeyuri + - throughputpool + diff --git a/specification/cost-management/cspell.yaml b/specification/cost-management/cspell.yaml new file mode 100644 index 000000000000..66f579aa0404 --- /dev/null +++ b/specification/cost-management/cspell.yaml @@ -0,0 +1,35 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ahub + - bokmål + - kpis + - subscripiton +overrides: + - filename: >- + **/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2018-12-01-preview/costmanagement.json + words: + - managment + - filename: >- + **/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2018-08-31/costmanagement.json + words: + - managment + - filename: >- + **/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2024-08-01/costmanagement.pricesheets.json + words: + - unitofmeasure + - filename: >- + **/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2023-09-01/costmanagement.pricesheets.json + words: + - unitof + - filename: >- + **/specification/cost-management/resource-manager/Microsoft.CostManagement/stable/2023-11-01/costmanagement.pricesheets.json + words: + - unitof + diff --git a/specification/cpim/cspell.yaml b/specification/cpim/cspell.yaml new file mode 100644 index 000000000000..96521d9f2067 --- /dev/null +++ b/specification/cpim/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - auths + - azureadexternalidentities + - ciam + - cpim + diff --git a/specification/customer-insights/cspell.yaml b/specification/customer-insights/cspell.yaml new file mode 100644 index 000000000000..05de04dbc779 --- /dev/null +++ b/specification/customer-insights/cspell.yaml @@ -0,0 +1,21 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - enquoted + - kpis +overrides: + - filename: >- + **/specification/customer-insights/resource-manager/Microsoft.CustomerInsights/stable/2017-04-26/customer-insights.json + words: + - thres + - filename: >- + **/specification/customer-insights/resource-manager/Microsoft.CustomerInsights/stable/2017-01-01/customer-insights.json + words: + - thres + diff --git a/specification/customerlockbox/cspell.yaml b/specification/customerlockbox/cspell.yaml new file mode 100644 index 000000000000..88267c162467 --- /dev/null +++ b/specification/customerlockbox/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - optedin + diff --git a/specification/databox/cspell.yaml b/specification/databox/cspell.yaml new file mode 100644 index 000000000000..a207537f46c2 --- /dev/null +++ b/specification/databox/cspell.yaml @@ -0,0 +1,55 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2018-01-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2019-09-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-04-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2020-11-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-03-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-05-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/preview/2021-08-01-preview/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2021-12-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-02-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-09-01/databox.json + words: + - tera + - filename: >- + **/specification/databox/resource-manager/Microsoft.DataBox/stable/2022-12-01/databox.json + words: + - tera + diff --git a/specification/databoxedge/cspell.yaml b/specification/databoxedge/cspell.yaml new file mode 100644 index 000000000000..f2ab7cadc92b --- /dev/null +++ b/specification/databoxedge/cspell.yaml @@ -0,0 +1,49 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - generatesastoken + - gosdk + - hyperv + - numa + - offersby + - rdma + - rsaes + - signup + - updation + - vcpu +overrides: + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-03-01/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-07-01/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2019-08-01/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2020-09-01/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-05-01-preview/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/preview/2020-09-01-preview/databoxedge.json + words: + - fulfilment + - filename: >- + **/specification/databoxedge/resource-manager/Microsoft.DataBoxEdge/stable/2020-12-01/databoxedge.json + words: + - fulfilment + diff --git a/specification/databricks/cspell.yaml b/specification/databricks/cspell.yaml new file mode 100644 index 000000000000..f1d647791172 --- /dev/null +++ b/specification/databricks/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dbfs + - keyvaulturi + - puid + - refered + - vnetpeering + diff --git a/specification/datacatalog/cspell.yaml b/specification/datacatalog/cspell.yaml new file mode 100644 index 000000000000..17c1e6abc06c --- /dev/null +++ b/specification/datacatalog/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: >- + **/specification/datacatalog/resource-manager/Microsoft.DataCatalog/stable/2016-03-30/datacatalog.json + words: + - listt + diff --git a/specification/datadog/cspell.yaml b/specification/datadog/cspell.yaml new file mode 100644 index 000000000000..acf58a244f8f --- /dev/null +++ b/specification/datadog/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - createor + - cspm + - packag + - ppackage + diff --git a/specification/datafactory/cspell.yaml b/specification/datafactory/cspell.yaml new file mode 100644 index 000000000000..94920b8aa156 --- /dev/null +++ b/specification/datafactory/cspell.yaml @@ -0,0 +1,55 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adfcdcs + - adls + - asana + - byoa + - cacerts + - dbfs + - denormalization + - distcp + - eloqua + - exprired + - hcatalog + - hdfs + - ilearner + - informix + - magento + - mktorest + - myshopify + - mysquare + - netezza + - odbc + - ondemand + - oozie + - soql + - ssis + - ssisdb + - sybase + - teradata + - usql + - vertica + - vsts + - wtgctbg + - xero +overrides: + - filename: >- + **/specification/datafactory/resource-manager/Microsoft.DataFactory/preview/2017-09-01-preview/entityTypes/IntegrationRuntime.json + words: + - exprired + - filename: >- + **/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/IntegrationRuntime.json + words: + - exprired + - filename: >- + **/specification/datafactory/resource-manager/Microsoft.DataFactory/stable/2018-06-01/entityTypes/Pipeline.json + words: + - multistatement + diff --git a/specification/datalake-analytics/cspell.yaml b/specification/datalake-analytics/cspell.yaml new file mode 100644 index 000000000000..b1b952057984 --- /dev/null +++ b/specification/datalake-analytics/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - adla + - mylog + - undeleting + - usql + diff --git a/specification/datalake-store/cspell.yaml b/specification/datalake-store/cspell.yaml new file mode 100644 index 000000000000..7a1ef44879a2 --- /dev/null +++ b/specification/datalake-store/cspell.yaml @@ -0,0 +1,23 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - aclspec + - adls + - fsaction + - hdfs + - modifyaclentries + - msconcat + - msgetaclstatus + - msgetfilestatus + - msliststatus + - removeaclentries + - undeleting + - webhdfs + diff --git a/specification/datamigration/cspell.yaml b/specification/datamigration/cspell.yaml new file mode 100644 index 000000000000..43ac017a4b4c --- /dev/null +++ b/specification/datamigration/cspell.yaml @@ -0,0 +1,33 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - initialiazing + - miliseconds + - onmicrosoft + - oplog + - retriable + - sharded + - sqldb + - sqldw + - sqlmi + - ssis + - sybase + - unlocalized +overrides: + - filename: >- + **/specification/datamigration/resource-manager/Microsoft.DataMigration/preview/2018-07-15-preview/definitions/TasksCommon.json + words: + - initialiazing + - miliseconds + - filename: >- + **/specification/datamigration/resource-manager/Microsoft.DataMigration/stable/2018-04-19/definitions/TasksCommon.json + words: + - initialiazing + - miliseconds + diff --git a/specification/dataprotection/cspell.yaml b/specification/dataprotection/cspell.yaml new file mode 100644 index 000000000000..9d6f5964c1ef --- /dev/null +++ b/specification/dataprotection/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - bcdr + - undelete +overrides: + - filename: >- + **/specification/dataprotection/resource-manager/Microsoft.DataProtection/**/dataprotection.json + words: + - committimedout + - preparetimedout + diff --git a/specification/datashare/cspell.yaml b/specification/datashare/cspell.yaml new file mode 100644 index 000000000000..07f0928ae238 --- /dev/null +++ b/specification/datashare/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - adls + - gosdk + diff --git a/specification/desktopvirtualization/cspell.yaml b/specification/desktopvirtualization/cspell.yaml new file mode 100644 index 000000000000..1fa3bbcdddd4 --- /dev/null +++ b/specification/desktopvirtualization/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - adfs + - deregistration + - logix + - msix + - msixpackage + - postive + - ssoadfs + - unhide + diff --git a/specification/devcenter/cspell.yaml b/specification/devcenter/cspell.yaml new file mode 100644 index 000000000000..803a283083d8 --- /dev/null +++ b/specification/devcenter/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - devbox + - devboxdefinitions + - devboxes + - devcenter + - devcenters + - occured + - represeted + - vcpus + diff --git a/specification/developerhub/cspell.yaml b/specification/developerhub/cspell.yaml new file mode 100644 index 000000000000..9560f72ae3d8 --- /dev/null +++ b/specification/developerhub/cspell.yaml @@ -0,0 +1,27 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - armdevhub + - gomodule + - kustomize + - oidc +overrides: + - filename: '**/specification/developerhub/resource-manager/Microsoft.DevHub/**/*.json' + words: + - hci + - hciaks + - hciarcvm + - iacprofile + - iacprofiles + - filename: >- + **/specification/developerhub/resource-manager/Microsoft.DevHub/preview/**/workflow.json + words: + - adoo + - adooauth + diff --git a/specification/deviceprovisioningservices/cspell.yaml b/specification/deviceprovisioningservices/cspell.yaml new file mode 100644 index 000000000000..cb2473055363 --- /dev/null +++ b/specification/deviceprovisioningservices/cspell.yaml @@ -0,0 +1,41 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - iotdps + - subscriptionid +overrides: + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2017-08-21-preview/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2017-11-15/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2018-01-22/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/preview/2020-09-01-preview/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-01-01/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2020-03-01/iotdps.json + words: + - messsage + - filename: >- + **/specification/deviceprovisioningservices/resource-manager/Microsoft.Devices/stable/2021-10-15/iotdps.json + words: + - messsage + diff --git a/specification/deviceregistry/cspell.yaml b/specification/deviceregistry/cspell.yaml new file mode 100644 index 000000000000..3a23f9b694e2 --- /dev/null +++ b/specification/deviceregistry/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - dtmi + - mqtt + - onvif +overrides: + - filename: >- + **/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/**/*.json + words: + - billables + diff --git a/specification/deviceupdate/cspell.yaml b/specification/deviceupdate/cspell.yaml new file mode 100644 index 000000000000..7495882c561b --- /dev/null +++ b/specification/deviceupdate/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - supress + diff --git a/specification/devops/cspell.yaml b/specification/devops/cspell.yaml new file mode 100644 index 000000000000..54b6989dfe49 --- /dev/null +++ b/specification/devops/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armdevops + - vsts + diff --git a/specification/devopsinfrastructure/cspell.yaml b/specification/devopsinfrastructure/cspell.yaml new file mode 100644 index 000000000000..2ab8f03341f0 --- /dev/null +++ b/specification/devopsinfrastructure/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armdevopsinfrastructure + - capactiy + - devopsinfrastructure + - reimage + - reimaging + - ssdlrs + - ssdzrs + - standardssd + diff --git a/specification/devspaces/cspell.yaml b/specification/devspaces/cspell.yaml new file mode 100644 index 000000000000..e9de75d171b0 --- /dev/null +++ b/specification/devspaces/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - devspaces + diff --git a/specification/devtestlabs/cspell.yaml b/specification/devtestlabs/cspell.yaml new file mode 100644 index 000000000000..5cbc0b5254af --- /dev/null +++ b/specification/devtestlabs/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - devtestlabs + - gibibytes + - retarget + - retargeted + - retargeting + - sysprepped + - vhds + diff --git a/specification/dfp/cspell.yaml b/specification/dfp/cspell.yaml new file mode 100644 index 000000000000..78bec48b86f3 --- /dev/null +++ b/specification/dfp/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + diff --git a/specification/digitaltwins/cspell.yaml b/specification/digitaltwins/cspell.yaml new file mode 100644 index 000000000000..47fcc92d2922 --- /dev/null +++ b/specification/digitaltwins/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dtdl + - etags + - mysb + diff --git a/specification/dnc/cspell.yaml b/specification/dnc/cspell.yaml new file mode 100644 index 000000000000..07e88f100dd5 --- /dev/null +++ b/specification/dnc/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + - vnetblock + diff --git a/specification/dns/cspell.yaml b/specification/dns/cspell.yaml new file mode 100644 index 000000000000..794ee769504b --- /dev/null +++ b/specification/dns/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ddds + - dnssec + - nsdname + - ptrdname + - tlsa + diff --git a/specification/domainservices/cspell.yaml b/specification/domainservices/cspell.yaml new file mode 100644 index 000000000000..2b0fcfe70878 --- /dev/null +++ b/specification/domainservices/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ldaps + - ntlm + - oucontainer + diff --git a/specification/dynatrace/cspell.yaml b/specification/dynatrace/cspell.yaml new file mode 100644 index 000000000000..aef768d20b6f --- /dev/null +++ b/specification/dynatrace/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dynatrace + diff --git a/specification/edgemarketplace/cspell.yaml b/specification/edgemarketplace/cspell.yaml new file mode 100644 index 000000000000..046414736619 --- /dev/null +++ b/specification/edgemarketplace/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hyperv + diff --git a/specification/edgeorder/cspell.yaml b/specification/edgeorder/cspell.yaml new file mode 100644 index 000000000000..c4d785b139c1 --- /dev/null +++ b/specification/edgeorder/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - guids + - signup + diff --git a/specification/edgezones/cspell.yaml b/specification/edgezones/cspell.yaml new file mode 100644 index 000000000000..d05bfa699085 --- /dev/null +++ b/specification/edgezones/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - unregistering + - unregisters + diff --git a/specification/elastic/cspell.yaml b/specification/elastic/cspell.yaml new file mode 100644 index 000000000000..c831f98f6d05 --- /dev/null +++ b/specification/elastic/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - createor + - updation + diff --git a/specification/elasticsan/cspell.yaml b/specification/elasticsan/cspell.yaml new file mode 100644 index 000000000000..e752f128edcf --- /dev/null +++ b/specification/elasticsan/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + - iscsi + diff --git a/specification/eventgrid/cspell.yaml b/specification/eventgrid/cspell.yaml new file mode 100644 index 000000000000..ab5d8baf6723 --- /dev/null +++ b/specification/eventgrid/cspell.yaml @@ -0,0 +1,46 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - acssms + - aznamespaces + - byval + - dicom + - fhir + - gcch + - jhon + - mqtt + - tdigest + - tmedia + - trepository + - tsize + - ttag + - unversioned + - updation +overrides: + - filename: >- + **/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json + words: + - whatsapp + - filename: >- + **/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/SystemEvents.json + words: + - clientsession + - filename: >- + **/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json + words: + - whatsapp + - filename: >- + **/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json + words: + - whatsapp + - filename: >- + **/specification/eventgrid/data-plane/Microsoft.EventGrid/**/EventGrid.json + words: + - renewlock + diff --git a/specification/eventhub/cspell.yaml b/specification/eventhub/cspell.yaml new file mode 100644 index 000000000000..9b87e7802cfa --- /dev/null +++ b/specification/eventhub/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - byok + - ipfilterrules + diff --git a/specification/ews/cspell.yaml b/specification/ews/cspell.yaml new file mode 100644 index 000000000000..ac96fec634f6 --- /dev/null +++ b/specification/ews/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - depedencies + diff --git a/specification/fabric/cspell.yaml b/specification/fabric/cspell.yaml new file mode 100644 index 000000000000..c3e6b889352e --- /dev/null +++ b/specification/fabric/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - failues + diff --git a/specification/fist/cspell.yaml b/specification/fist/cspell.yaml new file mode 100644 index 000000000000..9abbd6ff2e45 --- /dev/null +++ b/specification/fist/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - cves + - iotfirmwaredefense +overrides: + - filename: >- + **/specification/fist/resource-manager/Microsoft.IoTFirmwareDefense/**/*.json + words: + - relro + - rpath + - runpath + - sbom + diff --git a/specification/fluidrelay/cspell.yaml b/specification/fluidrelay/cspell.yaml new file mode 100644 index 000000000000..122df3def23d --- /dev/null +++ b/specification/fluidrelay/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - storagesku + diff --git a/specification/frontdoor/cspell.yaml b/specification/frontdoor/cspell.yaml new file mode 100644 index 000000000000..be252b8006d3 --- /dev/null +++ b/specification/frontdoor/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - eapmschap + - eaptls + - endpointa + - endpointb + - owasp +overrides: + - filename: >- + **/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/webapplicationfirewall.json + words: + - firewal + diff --git a/specification/graphrbac/cspell.yaml b/specification/graphrbac/cspell.yaml new file mode 100644 index 000000000000..1aebfed670b5 --- /dev/null +++ b/specification/graphrbac/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - graphrbac + diff --git a/specification/guestconfiguration/cspell.yaml b/specification/guestconfiguration/cspell.yaml new file mode 100644 index 000000000000..80d887b257b9 --- /dev/null +++ b/specification/guestconfiguration/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hcrp + - vmname + - vmssname + - vmssvm + diff --git a/specification/hanaonazure/cspell.yaml b/specification/hanaonazure/cspell.yaml new file mode 100644 index 000000000000..dee315aab7d7 --- /dev/null +++ b/specification/hanaonazure/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hanaonazure + diff --git a/specification/hdinsight/cspell.yaml b/specification/hdinsight/cspell.yaml new file mode 100644 index 000000000000..eb2da1e7392e --- /dev/null +++ b/specification/hdinsight/cspell.yaml @@ -0,0 +1,62 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - aadds + - abfs + - abfss + - adls + - ambari + - azurehdinsight + - cdbfac + - flink + - hdfs + - hdinsight + - hdinsightaks + - hdinsightcontainers + - hdinsightonaks + - jobid + - ldaps + - listafterid + - llap + - overriden + - pyspark + - saskey + - scaleup + - sparkr + - sqoop + - subid + - trino + - trinologs + - vmsize + - wasb + - wasbs +overrides: + - filename: '**/specification/hdinsight/hdinsight-kafka-rest-proxy/proxy.json' + words: + - metada + - filename: >- + **/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/cluster.json + words: + - saskey + - filename: >- + **/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json + words: + - vmsize + - vmsizes + - filename: >- + **/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/cluster.json + words: + - azureasyncoperations + - saskey + - filename: >- + **/specification/hdinsight/resource-manager/Microsoft.HDInsight/stable/2018-06-01-preview/locations.json + words: + - vmsize + - vmsizes + diff --git a/specification/healthcareapis/cspell.yaml b/specification/healthcareapis/cspell.yaml new file mode 100644 index 000000000000..f0c686f5bca1 --- /dev/null +++ b/specification/healthcareapis/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dicom + - dicomservice + - dicomservices + - fhir + - fhirdestination + - fhirdestinations + - fhirservice + - fhirservices + diff --git a/specification/healthdataaiservices/cspell.yaml b/specification/healthdataaiservices/cspell.yaml new file mode 100644 index 000000000000..e812771b22ff --- /dev/null +++ b/specification/healthdataaiservices/cspell.yaml @@ -0,0 +1,21 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - armhealthdataaiservices + - deid + - deidentification + - deidentify + - healthdataaiservices +overrides: + - filename: '**/specification/healthdataaiservices/**/*.json' + words: + - deidentification + - deidentify + - surrogation + diff --git a/specification/hybridaks/cspell.yaml b/specification/hybridaks/cspell.yaml new file mode 100644 index 000000000000..1a09d0a248f0 --- /dev/null +++ b/specification/hybridaks/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hybridaks + - iloveyou + - kubenet + - kubevirt + - ossku + - virt + - vmip + diff --git a/specification/hybridcompute/cspell.yaml b/specification/hybridcompute/cspell.yaml new file mode 100644 index 000000000000..82b89631a616 --- /dev/null +++ b/specification/hybridcompute/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - azcmagent + - scvmm +overrides: + - filename: >- + **/specification/hybridcompute/resource-manager/Microsoft.HybridCompute/**/*.json + words: + - hotpatch + diff --git a/specification/hybridconnectivity/cspell.yaml b/specification/hybridconnectivity/cspell.yaml new file mode 100644 index 000000000000..df0d475d9f0b --- /dev/null +++ b/specification/hybridconnectivity/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - azcore + - orupdate + diff --git a/specification/hybriddatamanager/cspell.yaml b/specification/hybriddatamanager/cspell.yaml new file mode 100644 index 000000000000..bc3afce6fe21 --- /dev/null +++ b/specification/hybriddatamanager/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - centralus + - northcentralus + - southcentralus + - uksouth + - ukwest + - westcentralus + diff --git a/specification/hybridkubernetes/cspell.yaml b/specification/hybridkubernetes/cspell.yaml new file mode 100644 index 000000000000..e8a1148c8443 --- /dev/null +++ b/specification/hybridkubernetes/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hybridkubernetes + - occured + - oidc + diff --git a/specification/hybridnetwork/cspell.yaml b/specification/hybridnetwork/cspell.yaml new file mode 100644 index 000000000000..e328411ec54a --- /dev/null +++ b/specification/hybridnetwork/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - nfvi + - nfvis + - sdwan + diff --git a/specification/imagebuilder/cspell.yaml b/specification/imagebuilder/cspell.yaml new file mode 100644 index 000000000000..ef4338ad8a57 --- /dev/null +++ b/specification/imagebuilder/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - versioner + diff --git a/specification/imds/cspell.yaml b/specification/imds/cspell.yaml new file mode 100644 index 000000000000..f6d2cfb3b025 --- /dev/null +++ b/specification/imds/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - imds + - uefi + diff --git a/specification/impact/cspell.yaml b/specification/impact/cspell.yaml new file mode 100644 index 000000000000..7a2a2a73b782 --- /dev/null +++ b/specification/impact/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - milli + diff --git a/specification/informatica/cspell.yaml b/specification/informatica/cspell.yaml new file mode 100644 index 000000000000..0d755208f9a7 --- /dev/null +++ b/specification/informatica/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - cdie + - infa + - informatica + - informaticadatamanagement + diff --git a/specification/intune/cspell.yaml b/specification/intune/cspell.yaml new file mode 100644 index 000000000000..e02791ace800 --- /dev/null +++ b/specification/intune/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - intune + diff --git a/specification/iotcentral/cspell.yaml b/specification/iotcentral/cspell.yaml new file mode 100644 index 000000000000..83efa301d5dc --- /dev/null +++ b/specification/iotcentral/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - azureiotcentral + - etags + - favorited + - getx + - iotcentral + - occurences + - removex + - unmodeled + - verifyx + diff --git a/specification/iothub/cspell.yaml b/specification/iothub/cspell.yaml new file mode 100644 index 000000000000..d3c0ea80009b --- /dev/null +++ b/specification/iothub/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armiothub + - avrodeflate + - certificatescreateorupdate + - deviceid + - getskus + - listbyrg + - listbysubscription + - listehgroups + - subscriptionid + diff --git a/specification/iotoperations/cspell.yaml b/specification/iotoperations/cspell.yaml new file mode 100644 index 000000000000..8a5e1c5f0965 --- /dev/null +++ b/specification/iotoperations/cspell.yaml @@ -0,0 +1,33 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - acks + - adipiscing + - adls + - amet + - armiotoperations + - consectetuer + - dmqtt + - elit + - kmgtpe + - mqtt + - otlp + - populator +overrides: + - filename: >- + **/specification/iotoperations/resource-manager/Microsoft.IoTOperations/**/*.json + words: + - akri + - mqttbroker + - opcua + - opentelemetry + - parquet + - schemaregistry + - websockets + diff --git a/specification/iotoperationsmq/cspell.yaml b/specification/iotoperationsmq/cspell.yaml new file mode 100644 index 000000000000..301ec350858b --- /dev/null +++ b/specification/iotoperationsmq/cspell.yaml @@ -0,0 +1,23 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - acks + - azurecr + - dmqtt + - guids + - iotoperationsmq + - mqtt + - mqttbridge + - mqttbridgeconnector + - mqttbroker + - populator + - spiffe + - svid + diff --git a/specification/iotspaces/cspell.yaml b/specification/iotspaces/cspell.yaml new file mode 100644 index 000000000000..a9e78b9119fe --- /dev/null +++ b/specification/iotspaces/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - iotspaces + - iotspacesservice + diff --git a/specification/keyvault/cspell.yaml b/specification/keyvault/cspell.yaml new file mode 100644 index 000000000000..51e828136df3 --- /dev/null +++ b/specification/keyvault/cspell.yaml @@ -0,0 +1,53 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - assetid + - azadmin + - byok + - deletesas + - ekus + - getsas + - listsas + - mbaldwin + - mhsm + - mhsmip + - rsassa + - rsnull + - secg + - secp + - setsas + - upns +overrides: + - filename: '**/specification/keyvault/data-plane/Microsoft.KeyVault/**/keyvault.json' + words: + - regenerte + - filename: '**/specification/keyvault/resource-manager/readme.go.md' + words: + - modelerfour + - filename: '**/specification/keyvault/Security.KeyVault.Administration/README.md' + words: + - backuprestore + - renamings + - subservice + - subservices + - tspconfig + - filename: '**/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml' + words: + - subpackage + - filename: '**/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml' + words: + - backuprestore + - filename: '**/specification/keyvault/data-plane/Microsoft.KeyVault/**/storage.json' + words: + - regenerte + - filename: >- + **/specification/keyvault/data-plane/Microsoft.KeyVault/stable/2016-10-01/keyvault.json + words: + - regenerte + diff --git a/specification/kubernetesconfiguration/cspell.yaml b/specification/kubernetesconfiguration/cspell.yaml new file mode 100644 index 000000000000..d2472a474f77 --- /dev/null +++ b/specification/kubernetesconfiguration/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - kubernetesconfiguration + - kustomization + - kustomizations + - kustomize + - oidc + - rpns + diff --git a/specification/kubernetesruntime/cspell.yaml b/specification/kubernetesruntime/cspell.yaml new file mode 100644 index 000000000000..f8abfbe72b73 --- /dev/null +++ b/specification/kubernetesruntime/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - doens't + diff --git a/specification/labservices/cspell.yaml b/specification/labservices/cspell.yaml new file mode 100644 index 000000000000..52d4e187c2ce --- /dev/null +++ b/specification/labservices/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - occured + - puid + - reimage + - reimaged + - reimaging + diff --git a/specification/liftrastronomer/cspell.yaml b/specification/liftrastronomer/cspell.yaml new file mode 100644 index 000000000000..1ebb0ca15d03 --- /dev/null +++ b/specification/liftrastronomer/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armastro + - astro + diff --git a/specification/liftrneon/cspell.yaml b/specification/liftrneon/cspell.yaml new file mode 100644 index 000000000000..4e2ec44a68f4 --- /dev/null +++ b/specification/liftrneon/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armneonpostgres + - neonpostgres + diff --git a/specification/liftrpinecone/cspell.yaml b/specification/liftrpinecone/cspell.yaml new file mode 100644 index 000000000000..73ba40ac019f --- /dev/null +++ b/specification/liftrpinecone/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - liftrpinecone +overrides: + - filename: '**/specification/liftrpinecone/**/*.json' + words: + - organizationname + - filename: '**/specification/liftrpinecone/Pinecone.VectorDb.Management/tspconfig.yaml' + words: + - liftrpinecone + - pineconevectordb + diff --git a/specification/liftrqumulo/cspell.yaml b/specification/liftrqumulo/cspell.yaml new file mode 100644 index 000000000000..6413a07703b3 --- /dev/null +++ b/specification/liftrqumulo/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - liftrqumulo + - qumulo + diff --git a/specification/loadtestservice/cspell.yaml b/specification/loadtestservice/cspell.yaml new file mode 100644 index 000000000000..aa51141cde7f --- /dev/null +++ b/specification/loadtestservice/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - abbervation + - vusers + diff --git a/specification/logic/cspell.yaml b/specification/logic/cspell.yaml new file mode 100644 index 000000000000..1719aa3bcd2a --- /dev/null +++ b/specification/logic/cspell.yaml @@ -0,0 +1,33 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ccyymmdd + - edifact + - hhmm + - keca + - unoa + - unob + - unoc + - unod + - unoe + - unof + - unog + - unoh + - unoi + - unoj + - unok + - unox + - unoy + - unregistering +overrides: + - filename: >- + **/specification/logic/resource-manager/Microsoft.Logic/preview/2015-02-01-preview/logic.json + words: + - accesskey + diff --git a/specification/logz/cspell.yaml b/specification/logz/cspell.yaml new file mode 100644 index 000000000000..0f49c466969c --- /dev/null +++ b/specification/logz/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armlogz + - logz + diff --git a/specification/m365securityandcompliance/cspell.yaml b/specification/m365securityandcompliance/cspell.yaml new file mode 100644 index 000000000000..1bae16eb31e4 --- /dev/null +++ b/specification/m365securityandcompliance/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - fhir + diff --git a/specification/machinelearning/cspell.yaml b/specification/machinelearning/cspell.yaml new file mode 100644 index 000000000000..67c6bdd49b3b --- /dev/null +++ b/specification/machinelearning/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - isnullable + - isordered + diff --git a/specification/machinelearningservices/cspell.yaml b/specification/machinelearningservices/cspell.yaml new file mode 100644 index 000000000000..5ee9891e7c76 --- /dev/null +++ b/specification/machinelearningservices/cspell.yaml @@ -0,0 +1,121 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - abfss + - adamw + - adls + - aksendpoint + - amlcompute + - arima + - arimax + - artifacturi + - azureml + - byok + - cntk + - containersas + - convolutional + - cran + - cuda + - cyclicity + - dbfs + - eloqua + - featurization + - featurizers + - gbdt + - gloo + - gluster + - gzrs + - hdfs + - hflip + - informations + - informix + - inlines + - kolmogorov + - magento + - mlflow + - mltable + - mnist + - mran + - multinomial + - myapp + - myblobstore + - mydevenvironment + - myexperiment + - myimage + - mymodel + - nccl + - nesterov + - netezza + - nmae + - nocopy + - npipe + - nrmse + - odbc + - onnx + - polynomially + - postgre + - puid + - pyspark + - qlognormal + - qloguniform + - qnormal + - quniform + - ragrs + - ragzrs + - reimage + - reponses + - rmse + - rscript + - runid + - serp + - sklearn + - smirnov + - sobol + - sqldb + - sybase + - teradata + - tmpfs + - uami + - valn + - vectorizer + - vertica + - xero + - xlarge +overrides: + - filename: >- + **/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/preview/2020-05-01-preview/machineLearningServices.json + words: + - mysqldb + - psqldb + - filename: >- + **/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-*/modelManagement.json + words: + - unknowon + - filename: >- + **/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2022-*-preview/machineLearningServices.json + words: + - npipe + - tmpfs + - filename: >- + **/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/20*-preview/azure-ai-assets.json + words: + - genericasset + - filename: >- + **/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/**/*.json + words: + - aoai + - datareferences + - expirable + - expirablesecret + - expire + - expireafterhours + - groundedness + - secretexpiry + - testconnection + diff --git a/specification/maintenance/cspell.yaml b/specification/maintenance/cspell.yaml new file mode 100644 index 000000000000..f0b322f6c04a --- /dev/null +++ b/specification/maintenance/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - kbid + - postive + - sqldb + diff --git a/specification/managednetworkfabric/cspell.yaml b/specification/managednetworkfabric/cspell.yaml new file mode 100644 index 000000000000..3b6ec32a60be --- /dev/null +++ b/specification/managednetworkfabric/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dscp + - gshut + diff --git a/specification/managementgroups/cspell.yaml b/specification/managementgroups/cspell.yaml new file mode 100644 index 000000000000..00d6b5cc82a0 --- /dev/null +++ b/specification/managementgroups/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - noaccess + diff --git a/specification/maps/cspell.yaml b/specification/maps/cspell.yaml new file mode 100644 index 000000000000..3de7235dfb15 --- /dev/null +++ b/specification/maps/cspell.yaml @@ -0,0 +1,70 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - actuals + - chttp + - datasetid + - dwgconversion + - dwgzippackage + - einsteinweg + - epsg + - fcontoso + - fpushpins + - haag + - hecto + - kmph + - maputnik + - minkowski + - neighbourhood + - openlr + - rstrnt + - scame + - tepco's + - tpeg + - udid + - udids + - unregistering + - uturn + - viewp + - xstr + - yazaki +overrides: + - filename: '**/specification/maps/data-plane/Weather/stable/1.1/weather.json' + words: + - locationally + - unittype + - filename: >- + **/specification/maps/data-plane/Microsoft.Maps/Render/preview/1.0/render.json + words: + - chttp + - fcontoso + - fpushpins + - filename: '**/specification/maps/data-plane/Render/preview/1.0/render.json' + words: + - chttp + - fcontoso + - fpushpins + - filename: '**/specification/maps/data-plane/Render/stable/2022-08-01/render.json' + words: + - maptileset + - filename: '**/specification/maps/data-plane/Spatial/stable/2022-08-01/spatial.json' + words: + - getbuffer + - getclosestpoint + - postbuffer + - postclosestpoint + - filename: '**/specification/maps/data-plane/Search/**' + words: + - geocodingresponse + - searchaddressresult + - searchaddressreverseresponse + - filename: '**/specification/maps/data-plane/Route/**' + words: + - modelerfour + diff --git a/specification/mariadb/cspell.yaml b/specification/mariadb/cspell.yaml new file mode 100644 index 000000000000..c98921625955 --- /dev/null +++ b/specification/mariadb/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - rdbms + diff --git a/specification/marketplacecatalog/cspell.yaml b/specification/marketplacecatalog/cspell.yaml new file mode 100644 index 000000000000..80c9b2d64d74 --- /dev/null +++ b/specification/marketplacecatalog/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - byol + - docon + - msrp + - mysolutions + - omex + - pricings + - remediations + - upns + diff --git a/specification/marketplacenotifications/cspell.yaml b/specification/marketplacenotifications/cspell.yaml new file mode 100644 index 000000000000..bb8821328231 --- /dev/null +++ b/specification/marketplacenotifications/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - sdkauto + diff --git a/specification/mediaservices/cspell.yaml b/specification/mediaservices/cspell.yaml new file mode 100644 index 000000000000..9182a34c6471 --- /dev/null +++ b/specification/mediaservices/cspell.yaml @@ -0,0 +1,34 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - accountn + - cabac + - cavlc + - cbcs + - cenc + - cmaf + - contentk + - contosomedia + - deinterlace + - deinterlacing + - diarization + - filterna + - kbps + - liveoutp + - muxed + - muxer + - nodrm + - psnr + - rtmp + - rtsp + - scms + - streamin + - unsubstituted + diff --git a/specification/migrate/cspell.yaml b/specification/migrate/cspell.yaml new file mode 100644 index 000000000000..661af62a9153 --- /dev/null +++ b/specification/migrate/cspell.yaml @@ -0,0 +1,64 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ahub + - atleast + - byol + - capex + - cifs + - cloudamize + - corent + - decommision + - decommisioned + - gmsa + - hadr + - hyperv + - hypervcollectors + - iisaks + - ldom + - licence + - mordernize + - movere + - msazr + - msazrde + - msazrusgo + - msmcazr + - opex + - paas + - pmem + - runasaccount + - runasaccounts + - sddc + - succeded + - turbonomic + - unsynchronized + - vcenters + - vcpu + - vffs + - vmfs + - vmwarecollectors + - vvol + - wacc + - zerto +overrides: + - filename: '**/specification/migrate/resource-manager/**/*.json' + words: + - assessible + - cluter + - datacentre + - ebds + - idms + - mfamily + - occured + - overcommit + - reasonings + - recieved + - sqlcollectors + - ssde + diff --git a/specification/migrateprojects/cspell.yaml b/specification/migrateprojects/cspell.yaml new file mode 100644 index 000000000000..9e83de2167ca --- /dev/null +++ b/specification/migrateprojects/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - cloudamize + - corent + - turbonomic + - zerto + diff --git a/specification/mixedreality/cspell.yaml b/specification/mixedreality/cspell.yaml new file mode 100644 index 000000000000..b6b020ce641e --- /dev/null +++ b/specification/mixedreality/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - gltf + - remoterenderingvm + diff --git a/specification/mobilenetwork/cspell.yaml b/specification/mobilenetwork/cspell.yaml new file mode 100644 index 000000000000..a2da584268d9 --- /dev/null +++ b/specification/mobilenetwork/cspell.yaml @@ -0,0 +1,41 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ambr + - fiveg + - fiveqi + - gbps + - guti + - homee + - iccid + - imei + - imeisv + - imsi + - kbps + - mobildnetwork + - napt + - ngap + - nssai + - plmn + - rfsp + - snssai + - supi + - tbps + - tmsi + - tngf + - tnla + - ue's + - unversioned + - vuln +overrides: + - filename: >- + **/specification/mobilenetwork/resource-manager/Microsoft.MobileNetwork/stable/**/*.json + words: + - suci + diff --git a/specification/mongocluster/cspell.yaml b/specification/mongocluster/cspell.yaml new file mode 100644 index 000000000000..00f2bb13e31a --- /dev/null +++ b/specification/mongocluster/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - capitialized + - cloe + - managment + - mongoclu + - pitr + - replicaclu + - specificatoin + - versoin + diff --git a/specification/monitor/cspell.yaml b/specification/monitor/cspell.yaml new file mode 100644 index 000000000000..550411bbb345 --- /dev/null +++ b/specification/monitor/cspell.yaml @@ -0,0 +1,42 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adece + - amcs + - azns + - itsm + - milli + - ndjson + - nopri + - odatatype + - otlp + - resourceid + - rollupby + - syslogs + - uksouth + - ulaanbaatar + - unlocalized + - uucp + - viruela + - westcentralus +overrides: + - filename: >- + **/specification/monitor/resource-manager/Microsoft.Insights/stable/2018-09-01/baseline_API.json + words: + - metdata + - filename: >- + **/specification/monitor/resource-manager/Microsoft.Insights/**/actionGroups_API.json + words: + - automitigationenabled + - correlationid + - monitorid + - occurringlocation + - routingid + - tsgid + diff --git a/specification/msi/cspell.yaml b/specification/msi/cspell.yaml new file mode 100644 index 000000000000..eb0fc7e889bd --- /dev/null +++ b/specification/msi/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armmsi + diff --git a/specification/mysql/cspell.yaml b/specification/mysql/cspell.yaml new file mode 100644 index 000000000000..8936d2072e25 --- /dev/null +++ b/specification/mysql/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - azapi + - byok + - cloudsa + - detecion + - euap + - gtid + - rdbms + - reponse + - rpname + - vcore + - vcores + diff --git a/specification/netapp/cspell.yaml b/specification/netapp/cspell.yaml new file mode 100644 index 000000000000..7553c362e9d3 --- /dev/null +++ b/specification/netapp/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - cifs + - getent + - mhsm + - mibps + - ontap +overrides: + - filename: '**/specification/netapp/**/*.json' + words: + - kibibytes + - svm's + - svms + - transitiontocmk + diff --git a/specification/network/cspell.yaml b/specification/network/cspell.yaml new file mode 100644 index 000000000000..dc8113cbe02c --- /dev/null +++ b/specification/network/cspell.yaml @@ -0,0 +1,90 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - afri + - apac + - arpa + - azfw + - cloudngfw + - customizability + - ddoscustompolicies + - ddosprotectionplans + - dnat + - dscp + - eapmschap + - eaptls + - gbps + - getikesas + - getvpnclientipsecparameters + - idns + - idps + - ipallocations + - ipam + - ipconfiguration + - ipconfigurations + - ipgroups + - latam + - nics + - ocsp + - owasp + - palo + - pfsmm + - propogation + - publicipprefixes + - seperate + - setvpnclientipsecparameters + - snat + - sstp + - svpn + - svpngateways + - swappable + - unprepare + - unprepares + - unpreparing + - virtualwans + - virutal + - vmssvm + - vnets + - vpnsites + - vxlan + - wans +overrides: + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-02-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-04-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-06-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-07-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-08-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-10-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/2018-11-01/networkWatcher.json + words: + - uknown + - filename: >- + **/specification/network/resource-manager/Microsoft.Network/stable/**/webapplicationfirewall.json + words: + - conditon + diff --git a/specification/networkanalytics/cspell.yaml b/specification/networkanalytics/cspell.yaml new file mode 100644 index 000000000000..d716bcd5403d --- /dev/null +++ b/specification/networkanalytics/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - iprules + diff --git a/specification/networkcloud/cspell.yaml b/specification/networkcloud/cspell.yaml new file mode 100644 index 000000000000..d34ddde85f14 --- /dev/null +++ b/specification/networkcloud/cspell.yaml @@ -0,0 +1,26 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dpdk + - gibibytes + - ipam + - ipvlan + - lldp + - macvlan + - mebibytes + - nics + - reimage + - sriov + - uami + - uefi + - uncordon + - uncordoned + - virtio + diff --git a/specification/networkfunction/cspell.yaml b/specification/networkfunction/cspell.yaml new file mode 100644 index 000000000000..747615016e7d --- /dev/null +++ b/specification/networkfunction/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ipfix + diff --git a/specification/newrelic/cspell.yaml b/specification/newrelic/cspell.yaml new file mode 100644 index 000000000000..3f03aad74bbe --- /dev/null +++ b/specification/newrelic/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - createor + diff --git a/specification/nginx/cspell.yaml b/specification/nginx/cspell.yaml new file mode 100644 index 000000000000..8a26202a1fb2 --- /dev/null +++ b/specification/nginx/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - armnginx + - nginxplus +overrides: + - filename: '**/specification/nginx/resource-manager/NGINX.NGINXPLUS/**/*.json' + words: + - autoscaled + - autoupgrade + - ncus + - nginx + - nginxaas + diff --git a/specification/notificationhubs/cspell.yaml b/specification/notificationhubs/cspell.yaml new file mode 100644 index 000000000000..a90346511f17 --- /dev/null +++ b/specification/notificationhubs/cspell.yaml @@ -0,0 +1,27 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - availiable + - mpns + - xiaomi +overrides: + - filename: >- + **/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2017-04-01/notificationhubs.json + words: + - availiable + - regenrate + - filename: >- + **/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2014-09-01/notificationhubs.json + words: + - availiable + - filename: >- + **/specification/notificationhubs/resource-manager/Microsoft.NotificationHubs/stable/2016-03-01/notificationhubs.json + words: + - availiable + diff --git a/specification/oep/cspell.yaml b/specification/oep/cspell.yaml new file mode 100644 index 000000000000..df289228a359 --- /dev/null +++ b/specification/oep/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armoep + diff --git a/specification/offazurespringboot/cspell.yaml b/specification/offazurespringboot/cspell.yaml new file mode 100644 index 000000000000..f6eef20dbd46 --- /dev/null +++ b/specification/offazurespringboot/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - miscs + diff --git a/specification/operationalinsights/cspell.yaml b/specification/operationalinsights/cspell.yaml new file mode 100644 index 000000000000..57f0dc6707eb --- /dev/null +++ b/specification/operationalinsights/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + - aiapi + - itsm + diff --git a/specification/operationsmanagement/cspell.yaml b/specification/operationsmanagement/cspell.yaml new file mode 100644 index 000000000000..9bb8edb727d7 --- /dev/null +++ b/specification/operationsmanagement/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - jtoken + diff --git a/specification/oracle/cspell.yaml b/specification/oracle/cspell.yaml new file mode 100644 index 000000000000..7a87e5e62d09 --- /dev/null +++ b/specification/oracle/cspell.yaml @@ -0,0 +1,47 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adbbackupid + - adbscharsetname + - adbsncharsetname + - autonomousdbversionsname + - cloudexadatainfrastructurename + - cloudvmclustername + - dbcs + - dbnodeocid + - dbserverocid + - dbsystemshapename + - dnsprivateviewocid + - ecpu + - exacc + - exadata + - exadatainfra + - exaoverview + - ezconnect + - ezconnectplus + - iorm + - mtls + - ncharacter + - ocid + - ocids + - ocpu + - oltp + - ords + - reco + - tcps + - tpurgent + - vmbm + - vmcluster + - vmdb + - vnic +overrides: + - filename: '**/specification/oracle/resource-manager/Oracle.Database/**/*.json' + words: + - systemversionname + diff --git a/specification/orbital/cspell.yaml b/specification/orbital/cspell.yaml new file mode 100644 index 000000000000..1d69ea8dbec4 --- /dev/null +++ b/specification/orbital/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - aodg + - eirp + - eirpd + - kratos + - lhcp + - rhcp + diff --git a/specification/paloaltonetworks/cspell.yaml b/specification/paloaltonetworks/cspell.yaml new file mode 100644 index 000000000000..dbfa11a68f26 --- /dev/null +++ b/specification/paloaltonetworks/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - cloudngfw + - fqdnlists + - ngfw + - palo + - paloaltonetworks + - paloaltonetworksngfw + - vwan + diff --git a/specification/peering/cspell.yaml b/specification/peering/cspell.yaml new file mode 100644 index 000000000000..8eb808afbf10 --- /dev/null +++ b/specification/peering/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - asns + - peerasns + - rpki + - unbilled + diff --git a/specification/playwrighttesting/cspell.yaml b/specification/playwrighttesting/cspell.yaml new file mode 100644 index 000000000000..7803cfcd4f89 --- /dev/null +++ b/specification/playwrighttesting/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: '**/specification/playwrighttesting/**/*' + words: + - microsoftplaywrighttesting + - playwrighttesting + diff --git a/specification/policyinsights/cspell.yaml b/specification/policyinsights/cspell.yaml new file mode 100644 index 000000000000..f84d1e1436a5 --- /dev/null +++ b/specification/policyinsights/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - pagable + - remediations + diff --git a/specification/portalservices/cspell.yaml b/specification/portalservices/cspell.yaml new file mode 100644 index 000000000000..af01a0c8121c --- /dev/null +++ b/specification/portalservices/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - inforamtion + diff --git a/specification/postgresql/cspell.yaml b/specification/postgresql/cspell.yaml new file mode 100644 index 000000000000..97073652653e --- /dev/null +++ b/specification/postgresql/cspell.yaml @@ -0,0 +1,24 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - byok + - citus + - rdbms + - rpname + - tigger + - vcore + - vcores +overrides: + - filename: >- + **/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/**/*json + words: + - apsaradb + - automigration + - supabase + diff --git a/specification/postgresqlhsc/cspell.yaml b/specification/postgresqlhsc/cspell.yaml new file mode 100644 index 000000000000..6bffb76c9812 --- /dev/null +++ b/specification/postgresqlhsc/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - citus + - meru + - pitr + - postgre + - postgresqlhsc + - rdbms + - sqlhsc + - vpackage + diff --git a/specification/powerbidedicated/cspell.yaml b/specification/powerbidedicated/cspell.yaml new file mode 100644 index 000000000000..a8df1bff5cce --- /dev/null +++ b/specification/powerbidedicated/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - pbie + - powerbidedicated + - vcore + diff --git a/specification/powerbiembedded/cspell.yaml b/specification/powerbiembedded/cspell.yaml new file mode 100644 index 000000000000..50c8a2208df5 --- /dev/null +++ b/specification/powerbiembedded/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - powerbi + - powerbiembedded + diff --git a/specification/powerbiprivatelinks/cspell.yaml b/specification/powerbiprivatelinks/cspell.yaml new file mode 100644 index 000000000000..e87c11c1c974 --- /dev/null +++ b/specification/powerbiprivatelinks/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - powerbi + - powerbiprivatelinks + diff --git a/specification/privatedns/cspell.yaml b/specification/privatedns/cspell.yaml new file mode 100644 index 000000000000..c3f9b200be65 --- /dev/null +++ b/specification/privatedns/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - fconfig + - ptrdname + diff --git a/specification/programmableconnectivity/cspell.yaml b/specification/programmableconnectivity/cspell.yaml new file mode 100644 index 000000000000..65f4df523c70 --- /dev/null +++ b/specification/programmableconnectivity/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - commonisation + - msisdn + - occured + - verificaiton + diff --git a/specification/providerhub/cspell.yaml b/specification/providerhub/cspell.yaml new file mode 100644 index 000000000000..39e5ee73c2f0 --- /dev/null +++ b/specification/providerhub/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - checkin + - regionality + diff --git a/specification/purview/cspell.yaml b/specification/purview/cspell.yaml new file mode 100644 index 000000000000..880e41e319b3 --- /dev/null +++ b/specification/purview/cspell.yaml @@ -0,0 +1,32 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adls + - gondor + - gosdk + - guids + - hdfs + - miti + - postgre + - teradata + - truefr + - xlsb +overrides: + - filename: >- + **/specification/purview/data-plane/Azure.Analytics.Purview.Workflow/preview/**/purviewWorkflow.json + words: + - dsar + - userrequests + - workflowruns + - workflowtasks + - filename: >- + **/specification/purview/data-plane/Azure.Analytics.Purview.DataMap/**/*.json + words: + - timerange + diff --git a/specification/quantum/cspell.yaml b/specification/quantum/cspell.yaml new file mode 100644 index 000000000000..91668d96fbb2 --- /dev/null +++ b/specification/quantum/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - msrest + - reqs + - sesssions + - unversioned + diff --git a/specification/quota/cspell.yaml b/specification/quota/cspell.yaml new file mode 100644 index 000000000000..7b681416b3da --- /dev/null +++ b/specification/quota/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - paramter +overrides: + - filename: '**/specification/quota/resource-manager/readme.md' + words: + - groupquota + - modelerfour + diff --git a/specification/recoveryservices/cspell.yaml b/specification/recoveryservices/cspell.yaml new file mode 100644 index 000000000000..4644b640b045 --- /dev/null +++ b/specification/recoveryservices/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - bcdr + - undelete + - unregisters + diff --git a/specification/recoveryservicesbackup/cspell.yaml b/specification/recoveryservicesbackup/cspell.yaml new file mode 100644 index 000000000000..ea10d98a413c --- /dev/null +++ b/specification/recoveryservicesbackup/cspell.yaml @@ -0,0 +1,38 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - bmsaad + - bmspo + - bmsrp + - csname + - dbinstance + - dedup + - execptions + - iaasvm + - iaasvmcontainer + - issqlcompression + - kpis + - lajolla + - reregister + - retriable + - rgname + - sqlag + - sqldb + - undelete + - unregisters + - vmilr + - vmname + - xcool + - xsmb +overrides: + - filename: >- + **/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/**/bms.json + words: + - hanascaleoutcontainer + diff --git a/specification/recoveryservicesdatareplication/cspell.yaml b/specification/recoveryservicesdatareplication/cspell.yaml new file mode 100644 index 000000000000..6c6144e1fb2f --- /dev/null +++ b/specification/recoveryservicesdatareplication/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dras + - extn + - nics + - reprotect + - vhdx + diff --git a/specification/recoveryservicessiterecovery/cspell.yaml b/specification/recoveryservicessiterecovery/cspell.yaml new file mode 100644 index 000000000000..7eeb4a2228b7 --- /dev/null +++ b/specification/recoveryservicessiterecovery/cspell.yaml @@ -0,0 +1,31 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ahub + - bcdr + - dras + - migratetoaad + - nics + - onprem + - replicationv + - reprotect + - unpairing +overrides: + - filename: >- + **/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/**/service.json + words: + - esxi + - orignal + - seleted + - targetvcenterid + - filename: >- + **/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/**/bms.json + words: + - xcool + diff --git a/specification/redhatopenshift/cspell.yaml b/specification/redhatopenshift/cspell.yaml new file mode 100644 index 000000000000..f1752c5f66a3 --- /dev/null +++ b/specification/redhatopenshift/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - kubeadmin + - snat + diff --git a/specification/redis/cspell.yaml b/specification/redis/cspell.yaml new file mode 100644 index 000000000000..5ed387bd7e41 --- /dev/null +++ b/specification/redis/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additonal + - unprovisioning + - zset + diff --git a/specification/redisenterprise/cspell.yaml b/specification/redisenterprise/cspell.yaml new file mode 100644 index 000000000000..d1e68974453d --- /dev/null +++ b/specification/redisenterprise/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - redi + - unversioned + diff --git a/specification/relay/cspell.yaml b/specification/relay/cspell.yaml new file mode 100644 index 000000000000..201121ed1328 --- /dev/null +++ b/specification/relay/cspell.yaml @@ -0,0 +1,34 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: >- + **/specification/relay/resource-manager/Microsoft.Relay/stable/2016-07-01/relay.json + words: + - autorization + - namespce + - regenrate + - relaytype + - reponse + - retirve + - successfuly + - usermetadata + - filename: >- + **/specification/relay/resource-manager/Microsoft.Relay/stable/2017-04-01/relay.json + words: + - autorization + - butthe + - neeeds + - regenrate + - relaytype + - reponse + - retirve + - successfuly + - usermetadata + diff --git a/specification/reservations/cspell.yaml b/specification/reservations/cspell.yaml new file mode 100644 index 000000000000..814cccccecf1 --- /dev/null +++ b/specification/reservations/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - centralus + - msrp + - northcentralus + - sku's + - southcentralus + - uksouth + - ukwest + - unarchiving + - westcentralus + diff --git a/specification/resourceconnector/cspell.yaml b/specification/resourceconnector/cspell.yaml new file mode 100644 index 000000000000..ab87b44faef0 --- /dev/null +++ b/specification/resourceconnector/cspell.yaml @@ -0,0 +1,15 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - capi + - kvaio + - scvmm + - virt + diff --git a/specification/resourcehealth/cspell.yaml b/specification/resourcehealth/cspell.yaml new file mode 100644 index 000000000000..6f4bc0fed3a7 --- /dev/null +++ b/specification/resourcehealth/cspell.yaml @@ -0,0 +1,24 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - occured +overrides: + - filename: >- + **/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2015-01-01/resourcehealth.json + words: + - occured + - filename: >- + **/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/preview/2018-08-01/ResourceHealth.json + words: + - occured + - filename: >- + **/specification/resourcehealth/resource-manager/Microsoft.ResourceHealth/stable/2017-07-01/resourcehealth.json + words: + - occured + diff --git a/specification/resourcemover/cspell.yaml b/specification/resourcemover/cspell.yaml new file mode 100644 index 000000000000..ada23ff9a2ed --- /dev/null +++ b/specification/resourcemover/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - gosdk + diff --git a/specification/resources/cspell.yaml b/specification/resources/cspell.yaml new file mode 100644 index 000000000000..dadc280da453 --- /dev/null +++ b/specification/resources/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - afec + - decompilation + - decompile + - decompiled + - decompiles + - manegement + - puid + - rmpl + - substringof + - unregistering + - unregisters + diff --git a/specification/riskiq/cspell.yaml b/specification/riskiq/cspell.yaml new file mode 100644 index 000000000000..faca556c94bd --- /dev/null +++ b/specification/riskiq/cspell.yaml @@ -0,0 +1,30 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - alexa + - asns + - cisa + - cnames + - cves + - defendereasm + - easm + - guids + - nxdomain + - prameter + - remediations + - rollup + - spreadsheetml + - whois +overrides: + - filename: '**/specification/riskiq/data-plane/Microsoft.Easm/preview/**/*.json' + words: + - affected + - autoconfirmed + - cisa + diff --git a/specification/saas/cspell.yaml b/specification/saas/cspell.yaml new file mode 100644 index 000000000000..38fc85524184 --- /dev/null +++ b/specification/saas/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - armsaas + - exsisting + - saasresources +overrides: + - filename: >- + **/specification/saas/resource-manager/Microsoft.SaaS/preview/2018-03-01-beta/saas.json + words: + - saasresources + diff --git a/specification/scom/cspell.yaml b/specification/scom/cspell.yaml new file mode 100644 index 000000000000..423ffa41dc6d --- /dev/null +++ b/specification/scom/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + - asyncronously + - gmsa + - scom + - sdkauto + diff --git a/specification/scvmm/cspell.yaml b/specification/scvmm/cspell.yaml new file mode 100644 index 000000000000..b986c1f8b420 --- /dev/null +++ b/specification/scvmm/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armscvmm + - deboards + - deregisters + - metadatas + - onboards + - scvmm + - sdkauto + diff --git a/specification/search/cspell.yaml b/specification/search/cspell.yaml new file mode 100644 index 000000000000..7a10e10548d5 --- /dev/null +++ b/specification/search/cspell.yaml @@ -0,0 +1,111 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adls + - adlsgen + - angika + - asturian + - awadhi + - bagheli + - balkar + - bangla + - beider + - bhojpuri + - bodo + - bokmaal + - bokmål + - bokmal + - brajbha + - chhattisgarhi + - dari + - decompounder + - devanagiri + - dhimal + - dogri + - erzya + - exfiltration + - frulian + - gagauz + - gurung + - haase + - halbi + - hani + - haryanvi + - hnsw + - inari + - jaunsari + - k'iche + - kabuverdianu + - kachin + - kangri + - karachay + - kashubian + - khaling + - kiswahili + - koelner + - kölner + - korku + - kosraean + - kraaij + - kstem + - kumyk + - kurukh + - lovins + - lucene + - lule + - luxembourgish + - mahasu + - malto + - mylocation + - niuean + - nogay + - nysiis + - occitan + - otomi + - phonetik + - piqd + - pohlmann + - reranker + - rslp + - sadri + - sami + - sirmauri + - skolt + - sorani + - soundex + - tetum + - tfidf + - thangmi + - tokenizes + - tuvan + - uyghur + - vectorizable + - vectorize + - vectorizer + - vectorizers + - viet + - volapük + - yucatec + - zhuang +overrides: + - filename: '**/specification/search/data-plane/Azure.Search/**/*.json' + words: + - discretizing + - matryoshka + - maxcharlength + - onelake + - rerank + - rescore + - rescored + - rescoring + - submode + - subscores + - tiktoken + - vectorizing + diff --git a/specification/security/cspell.yaml b/specification/security/cspell.yaml new file mode 100644 index 000000000000..7b7ce2510381 --- /dev/null +++ b/specification/security/cspell.yaml @@ -0,0 +1,25 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - apim + - ciem + - creds + - cspm + - dspm + - exfiltration + - mcas + - ngfw + - oidc + - pricings + - qualys + - recommedations + - vmuuid + - wdatp + diff --git a/specification/securityandcompliance/cspell.yaml b/specification/securityandcompliance/cspell.yaml new file mode 100644 index 000000000000..1bae16eb31e4 --- /dev/null +++ b/specification/securityandcompliance/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - fhir + diff --git a/specification/securityinsights/cspell.yaml b/specification/securityinsights/cspell.yaml new file mode 100644 index 000000000000..0fad92c8d4fb --- /dev/null +++ b/specification/securityinsights/cspell.yaml @@ -0,0 +1,62 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - aadiam + - aadip + - aatp + - defanged + - exfiltrate + - exfiltration + - jedobot + - mcas + - mdatp + - msti + - nlstext + - occured + - puid + - sentinelus + - signin + - stix + - supressions + - syncer + - taxii + - ueba + - whois +overrides: + - filename: >- + **/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/**/*.json + words: + - abap + - adcp + - agragrs + - agrdefine + - agrflags + - agrprof + - agrtcodes + - agrusers + - criterias + - devaccess + - nwrfc + - pahi + - sncsysacl + - useraddr + - usgrpuser + - usracl + - usrstamp + - filename: >- + **/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/**/*.json + words: + - criterias + - mdti + - filename: >- + **/specification/securityinsights/data-plane/Microsoft.SecurityInsights/**/*.json + words: + - stixobjects + - threatintelligencestixobjects + diff --git a/specification/service-map/cspell.yaml b/specification/service-map/cspell.yaml new file mode 100644 index 000000000000..9b52697d9ca5 --- /dev/null +++ b/specification/service-map/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - hyperv + - ldom + - onmachine + diff --git a/specification/servicebus/cspell.yaml b/specification/servicebus/cspell.yaml new file mode 100644 index 000000000000..3a6642bd8c44 --- /dev/null +++ b/specification/servicebus/cspell.yaml @@ -0,0 +1,31 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - byok + - ipfilterrules + - sbeh + - unpartitioned +overrides: + - filename: >- + **/specification/servicebus/resource-manager/Microsoft.ServiceBus/stable/2017-04-01/Rules.json + words: + - ruleproperties + - filename: >- + **/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2018-01-01-preview/Rules.json + words: + - ruleproperties + - filename: >- + **/specification/servicebus/resource-manager/Microsoft.ServiceBus/preview/2021-01-01-preview/Rules.json + words: + - ruleproperties + - filename: >- + **/specification/servicebus/resource-manager/Microsoft.ServiceBus/stable/2014-09-01/servicebus.json + words: + - planproperties + diff --git a/specification/servicefabric/cspell.yaml b/specification/servicefabric/cspell.yaml new file mode 100644 index 000000000000..b3112fa59a6b --- /dev/null +++ b/specification/servicefabric/cspell.yaml @@ -0,0 +1,46 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - affinitized + - dsms + - fluentd + - inbuild + - milli + - myapp + - reimage + - reimages + - sfhealthid + - sfpkg + - unprovision + - unprovisioned + - unprovisioning + - unpublish + - unregistering + - unregisters + - waagent +overrides: + - filename: >- + **/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.2/servicefabric.json + words: + - fautls + - milli + - qurum + - filename: >- + **/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.3/servicefabric.json + words: + - fautls + - milli + - qurum + - filename: >- + **/specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.4/servicefabric.json + words: + - fautls + - milli + - qurum + diff --git a/specification/servicefabricmanagedclusters/cspell.yaml b/specification/servicefabricmanagedclusters/cspell.yaml new file mode 100644 index 000000000000..3d4348c7e5a2 --- /dev/null +++ b/specification/servicefabricmanagedclusters/cspell.yaml @@ -0,0 +1,25 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - affinitized + - dscp + - getazresiliencystatus + - reimage + - reimages + - snat + - waagent +overrides: + - filename: >- + **/specification/servicefabricmanagedclusters/resource-manager/Microsoft.ServiceFabric/**/*.json + words: + - regionname + - sfmc + - sfmc's + - sfmcdomain + diff --git a/specification/servicefabricmesh/cspell.yaml b/specification/servicefabricmesh/cspell.yaml new file mode 100644 index 000000000000..539ffa8e73a7 --- /dev/null +++ b/specification/servicefabricmesh/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - fluentd + diff --git a/specification/servicelinker/cspell.yaml b/specification/servicelinker/cspell.yaml new file mode 100644 index 000000000000..722c3282df9a --- /dev/null +++ b/specification/servicelinker/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - dapr + diff --git a/specification/signalr/cspell.yaml b/specification/signalr/cspell.yaml new file mode 100644 index 000000000000..7835b4917df1 --- /dev/null +++ b/specification/signalr/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - armsignalr + - azapi + - azurerm + - centraluseuap + - creds + - euap + - mysignalrservice + - signalr + - tolist + diff --git a/specification/solutions/cspell.yaml b/specification/solutions/cspell.yaml new file mode 100644 index 000000000000..b67c4720fcd8 --- /dev/null +++ b/specification/solutions/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - puid + diff --git a/specification/sphere/cspell.yaml b/specification/sphere/cspell.yaml new file mode 100644 index 000000000000..e4f84dc5550a --- /dev/null +++ b/specification/sphere/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - nwfs + - sdkauto + diff --git a/specification/splitio/cspell.yaml b/specification/splitio/cspell.yaml new file mode 100644 index 000000000000..291d7b35a393 --- /dev/null +++ b/specification/splitio/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - splitio + diff --git a/specification/sql/cspell.yaml b/specification/sql/cspell.yaml new file mode 100644 index 000000000000..d25980206b56 --- /dev/null +++ b/specification/sql/cspell.yaml @@ -0,0 +1,65 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adal + - azurecli + - azuresqldbkeyrotation + - bacpac + - byok + - cmkdw + - cmkhs + - cmwis + - dbcc + - dbcmk + - dtcs + - dtus + - exfiltration + - gzrs + - logio + - msdb + - ntext + - pitr + - retriable + - sawa + - sqlmi + - tempdb + - unrestorable + - vcore + - vcores + - virutal + - vldb +overrides: + - filename: >- + **/specification/sql/resource-manager/Microsoft.Sql/stable/2014-04-01/backups.json + words: + - droppeded + - filename: >- + **/specification/sql/resource-manager/Microsoft.Sql/**/DistributedAvailabilityGroups.json + words: + - freemium + - filename: >- + **/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstances.json + words: + - freemium + - filename: >- + **/specification/sql/resource-manager/Microsoft.Sql/**/ServerTrustCertificates.json + words: + - freemium + - filename: >- + **/specification/sql/resource-manager/Microsoft.Sql/**/ManagedInstanceDtcs.json + words: + - msdtc's + - msdtcdns + - filename: '**/specification/sql/resource-manager/Microsoft.Sql/**/TimeZones.json' + words: + - freemium + - filename: '**/specification/sql/resource-manager/Microsoft.Sql/**/ElasticPools.json' + words: + - prms + diff --git a/specification/sqlvirtualmachine/cspell.yaml b/specification/sqlvirtualmachine/cspell.yaml new file mode 100644 index 000000000000..6ad1bc110b4f --- /dev/null +++ b/specification/sqlvirtualmachine/cspell.yaml @@ -0,0 +1,28 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - ahub + - byol + - domainful + - gmsa + - licence + - lpim + - maxdop + - oltp + - sqlvm + - sqlvms + - tempdb + - wsfc +overrides: + - filename: >- + **/specification/sqlvirtualmachine/resource-manager/Microsoft.SqlVirtualMachine/**/*.json + words: + - wsus + - wumu + diff --git a/specification/standbypool/cspell.yaml b/specification/standbypool/cspell.yaml new file mode 100644 index 000000000000..7697c45a19e7 --- /dev/null +++ b/specification/standbypool/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: '**/specification/standbypool/StandbyPool.Management/sdk-suppressions.yaml' + words: + - standbypool + diff --git a/specification/storSimple1200Series/cspell.yaml b/specification/storSimple1200Series/cspell.yaml new file mode 100644 index 000000000000..74d4d9dd3357 --- /dev/null +++ b/specification/storSimple1200Series/cspell.yaml @@ -0,0 +1,21 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - granularities + - iscsi + - iscsiservers + - occurences + - rsaes +overrides: + - filename: >- + **/specification/storSimple1200Series/resource-manager/Microsoft.StorSimple/stable/2016-10-01/StorSimple.json + words: + - availablity + - requestrequest + diff --git a/specification/storage/cspell.yaml b/specification/storage/cspell.yaml new file mode 100644 index 000000000000..53dd8c084447 --- /dev/null +++ b/specification/storage/cspell.yaml @@ -0,0 +1,48 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - aaaabbbb + - aadds + - aadkerb + - abfs + - aborthnsonmigration + - dacl + - gzrs + - hnsonmigration + - ipos + - isfolder + - keyvaulturi + - mebibytes + - messageid + - mibps + - ntlm + - numofmessages + - overriden + - policyid + - ragrs + - ragzrs + - rscc + - rscd + - rsce + - rscl + - rsct + - ruleid + - rwxrw + - sddl + - snaptshot + - undelete + - unleased + - versionid + - xsmb +overrides: + - filename: '**/specification/storage/data-plane/Microsoft.FileStorage/**/*.json' + words: + - hardlink + - symboliclink + diff --git a/specification/storageactions/cspell.yaml b/specification/storageactions/cspell.yaml new file mode 100644 index 000000000000..356e280c80cc --- /dev/null +++ b/specification/storageactions/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - undelete + diff --git a/specification/storagecache/cspell.yaml b/specification/storagecache/cspell.yaml new file mode 100644 index 000000000000..e49b4cf56c65 --- /dev/null +++ b/specification/storagecache/cspell.yaml @@ -0,0 +1,13 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - amlfilesystem + - clfs + diff --git a/specification/storageimportexport/cspell.yaml b/specification/storageimportexport/cspell.yaml new file mode 100644 index 000000000000..770f045e8caa --- /dev/null +++ b/specification/storageimportexport/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: [] +overrides: + - filename: >- + **/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json + words: + - infomation + - filename: >- + **/specification/storageimportexport/resource-manager/Microsoft.ImportExport/stable/2016-11-01/storageimportexport.json + words: + - listblob + diff --git a/specification/storagemover/cspell.yaml b/specification/storagemover/cspell.yaml new file mode 100644 index 000000000000..e68974eedc37 --- /dev/null +++ b/specification/storagemover/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - unregistering + diff --git a/specification/storagepool/cspell.yaml b/specification/storagepool/cspell.yaml new file mode 100644 index 000000000000..ef0d82cad5af --- /dev/null +++ b/specification/storagepool/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - additinal + - iscsi + - tpgs + diff --git a/specification/storagesync/cspell.yaml b/specification/storagesync/cspell.yaml new file mode 100644 index 000000000000..a058e173ed02 --- /dev/null +++ b/specification/storagesync/cspell.yaml @@ -0,0 +1,25 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - istransitioning + - occurences +overrides: + - filename: >- + **/specification/storagesync/resource-manager/Microsoft.StorageSync/stable/2018-07-01/storagesync.json + words: + - managementt + - filename: >- + **/specification/storagesync/resource-manager/Microsoft.StorageSync/stable/2018-04-02/storagesync.json + words: + - managementt + - filename: >- + **/specification/storagesync/resource-manager/Microsoft.StorageSync/preview/2017-06-05-preview/storagesync.json + words: + - managementt + diff --git a/specification/storsimple8000series/cspell.yaml b/specification/storsimple8000series/cspell.yaml new file mode 100644 index 000000000000..572a0f955701 --- /dev/null +++ b/specification/storsimple8000series/cspell.yaml @@ -0,0 +1,21 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - granularities + - iscsi + - ntlm + - occurences + - rsaes +overrides: + - filename: >- + **/specification/storsimple8000series/resource-manager/Microsoft.StorSimple/stable/2017-06-01/storsimple.json + words: + - availablity + - remotemanagement + diff --git a/specification/streamanalytics/cspell.yaml b/specification/streamanalytics/cspell.yaml new file mode 100644 index 000000000000..7db418d44567 --- /dev/null +++ b/specification/streamanalytics/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - saql + diff --git a/specification/synapse/cspell.yaml b/specification/synapse/cspell.yaml new file mode 100644 index 000000000000..cd27ab39db99 --- /dev/null +++ b/specification/synapse/cspell.yaml @@ -0,0 +1,89 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - adal + - adla + - adls + - apacheavro + - asana + - byoa + - byok + - cacerts + - dbcc + - dbfs + - ddls + - distcp + - eloqua + - ename + - evalue + - exfiltration + - exprired + - hcatalog + - hdfs + - ilearner + - informations + - informix + - kustooperations + - largerc + - logio + - magento + - manytoone + - mediumrc + - mktorest + - msapiddl + - myshopify + - mysquare + - nbformat + - netezza + - ntext + - odbc + - ondemand + - onetoone + - oozie + - pyspark + - sawa + - scsv + - serde + - smallrc + - sohsv + - soql + - ssis + - ssisdb + - sybase + - teradata + - tsve + - updation + - usql + - vertica + - vsts + - wtgctbg + - xero + - xlargerc +overrides: + - filename: >- + **/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/integrationRuntime.json + words: + - exprired + - filename: >- + **/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/integrationRuntime.json + words: + - exprired + - filename: >- + **/specification/synapse/data-plane/Microsoft.Synapse/stable/2020-12-01/entityTypes/Pipeline.json + words: + - multistatement + - filename: >- + **/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/integrationRuntime.json + words: + - exprired + - filename: >- + **/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/integrationRuntime.json + words: + - exprired + diff --git a/specification/terraform/cspell.yaml b/specification/terraform/cspell.yaml new file mode 100644 index 000000000000..4a956dcce244 --- /dev/null +++ b/specification/terraform/cspell.yaml @@ -0,0 +1,22 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - azapi + - azurerm +overrides: + - filename: >- + **/specification/terraform/resource-manager/Microsoft.AzureTerraform/**/*.json + words: + - azapi + - azurerm + - filename: '**/specification/terraform/Microsoft.AzureTerraform.Management/**/*.tsp' + words: + - azapi + - azurerm + diff --git a/specification/testbase/cspell.yaml b/specification/testbase/cspell.yaml new file mode 100644 index 000000000000..04a1bbdfc5b5 --- /dev/null +++ b/specification/testbase/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - intune + - intunewin + - mapp + - sdkauto + - suvp + - vhds + diff --git a/specification/timeseriesinsights/cspell.yaml b/specification/timeseriesinsights/cspell.yaml new file mode 100644 index 000000000000..298827c10c88 --- /dev/null +++ b/specification/timeseriesinsights/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - ingressed + diff --git a/specification/translation/cspell.yaml b/specification/translation/cspell.yaml new file mode 100644 index 000000000000..e485f3615ab3 --- /dev/null +++ b/specification/translation/cspell.yaml @@ -0,0 +1,20 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apim + - mosca +overrides: + - filename: '**/specification/translation/data-plane/**/*.json' + words: + - autodetection + - breaksentence + - mosca + - transliterable + - translitered + diff --git a/specification/trustedsigning/cspell.yaml b/specification/trustedsigning/cspell.yaml new file mode 100644 index 000000000000..b89affc8a7cd --- /dev/null +++ b/specification/trustedsigning/cspell.yaml @@ -0,0 +1,14 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - rsassa + - secp + - trusedsigning + diff --git a/specification/verifiedid/cspell.yaml b/specification/verifiedid/cspell.yaml new file mode 100644 index 000000000000..58e85eff0c13 --- /dev/null +++ b/specification/verifiedid/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - verifiedid + diff --git a/specification/vi/cspell.yaml b/specification/vi/cspell.yaml new file mode 100644 index 000000000000..7564ceec16c1 --- /dev/null +++ b/specification/vi/cspell.yaml @@ -0,0 +1,17 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apim + - medianalyzer +overrides: + - filename: '**/specification/vi/resource-manager/Microsoft.VideoIndexer/**/*.json' + words: + - videoindexer + - viopenai + diff --git a/specification/videoanalyzer/cspell.yaml b/specification/videoanalyzer/cspell.yaml new file mode 100644 index 000000000000..5fd463958742 --- /dev/null +++ b/specification/videoanalyzer/cspell.yaml @@ -0,0 +1,23 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - abgr + - abgrabgr + - argb + - argbargb + - bgra + - bgrabgra + - bgrbgr + - cmaf + - kbps + - mebibytes + - onvif + - rtsp + diff --git a/specification/visualstudio/cspell.yaml b/specification/visualstudio/cspell.yaml new file mode 100644 index 000000000000..d384eddd73a7 --- /dev/null +++ b/specification/visualstudio/cspell.yaml @@ -0,0 +1,16 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - cmmi + - puid + - southcentralus + - tfvc + - vsts + diff --git a/specification/vmware/cspell.yaml b/specification/vmware/cspell.yaml new file mode 100644 index 000000000000..1446704cafc9 --- /dev/null +++ b/specification/vmware/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - gosdk + - iscsi + - ldaps + - nsxt + - updatd + - vcsa + - vmotion + diff --git a/specification/vmwarecloudsimple/cspell.yaml b/specification/vmwarecloudsimple/cspell.yaml new file mode 100644 index 000000000000..8f931d7649f9 --- /dev/null +++ b/specification/vmwarecloudsimple/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - csrp + - dimm + - nics + - osnic + - pcnet + - refid + - vmwarecloudsimple + - vmwaretools + diff --git a/specification/voiceservices/cspell.yaml b/specification/voiceservices/cspell.yaml new file mode 100644 index 000000000000..7a46a821c87d --- /dev/null +++ b/specification/voiceservices/cspell.yaml @@ -0,0 +1,19 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - choosable + - elin + - esrp + - pcma + - pcmu + - pstn + - reimplementations + - vsts + diff --git a/specification/web/cspell.yaml b/specification/web/cspell.yaml new file mode 100644 index 000000000000..e8d14f5a4158 --- /dev/null +++ b/specification/web/cspell.yaml @@ -0,0 +1,91 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +import: + - ../../cspell.yaml +words: + - apim + - aseregions + - creds + - csrs + - customdnssuffix + - dapr + - fdid + - icann + - ipssl + - iscloneable + - ishostingenvironmentnameavailable + - jwts + - myapp + - perfmon + - puid + - ravbhatnagar + - rdworkername + - snapshotsdr + - unparked + - unregistering + - virtualip + - vnets + - vstsrm + - weidongxu + - whois + - zilla +overrides: + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2016-08-01/WebApps.json + words: + - priviledged + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json + words: + - priviledged + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2018-11-01/WebApps.json + words: + - priviledged + - filename: '**/specification/web/resource-manager/Microsoft.Web/stable/**/WebApps.json' + words: + - sitecontainers + - updatemachinekey + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2015-08-01/service.json + words: + - availabilily + - availablility + - defintions + - diagnosics + - filename: >- + **/specification/web/resource-manager/Microsoft.DomainRegistration/stable/2015-04-01/Domains.json + words: + - availablility + - filename: >- + **/specification/web/resource-manager/Microsoft.DomainRegistration/stable/2018-02-01/Domains.json + words: + - availablility + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServiceEnvironments.json + words: + - accessable + - availabilily + - diagnosics + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServiceEnvironments.json + words: + - availabilily + - diagnosics + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/AppServicePlans.json + words: + - defintions + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/stable/2016-09-01/AppServicePlans.json + words: + - defintions + - filename: >- + **/specification/web/resource-manager/Microsoft.Web/**/CommonDefinitions.json + words: + - guage + diff --git a/specification/webpubsub/cspell.yaml b/specification/webpubsub/cspell.yaml new file mode 100644 index 000000000000..a7a336ef5f29 --- /dev/null +++ b/specification/webpubsub/cspell.yaml @@ -0,0 +1,18 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - azapi + - azurerm + - centraluseuap + - creds + - euap + - mysignalrservice + - signalr + diff --git a/specification/windowsesu/cspell.yaml b/specification/windowsesu/cspell.yaml new file mode 100644 index 000000000000..2716b178223f --- /dev/null +++ b/specification/windowsesu/cspell.yaml @@ -0,0 +1,12 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - windowsesu + diff --git a/specification/workloads/cspell.yaml b/specification/workloads/cspell.yaml new file mode 100644 index 000000000000..0e7d80a382f0 --- /dev/null +++ b/specification/workloads/cspell.yaml @@ -0,0 +1,26 @@ +# This file configures spell checking. Items in "words" were initially populated +# with words that might be spelling errors. Review these words and take +# appropriate action. For more information, see: https://aka.ms/ci-fix#spell-check + +# Spell checking is not case sensitive +# Keep word lists in alphabetical order so the file is easier to manage +version: '0.2' +import: + - ../../cspell.yaml +words: + - acss + - ascs + - giga + - hdbuserstore + - iaasvm + - ibmaix + - iloveyou + - informix + - issqlcompression + - sapase + - sapdb + - sapsrv + - sqldb + - vmname + - webdisp + From fcba95263cd564625f7a3560db2342afec574cfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:13:33 -0800 Subject: [PATCH 41/82] [Key Vault] TypeSpec for Certificates library (#28708) --- .../Security.KeyVault.Certificates/client.tsp | 89 + .../7.5/BackupCertificate-example.json | 16 + .../7.5/CreateCertificate-example.json | 49 + .../7.5/DeleteCertificate-example.json | 67 + .../DeleteCertificateContacts-example.json | 27 + .../7.5/DeleteCertificateIssuer-example.json | 35 + .../DeleteCertificateOperation-example.json | 24 + .../examples/7.5/GetCertificate-example.json | 65 + .../7.5/GetCertificateContacts-example.json | 27 + .../7.5/GetCertificateIssuer-example.json | 35 + .../7.5/GetCertificateIssuers-example.json | 29 + .../7.5/GetCertificateOperation-example.json | 24 + .../7.5/GetCertificatePolicy-example.json | 49 + .../7.5/GetCertificateVersions-example.json | 40 + .../examples/7.5/GetCertificates-example.json | 39 + .../7.5/GetDeletedCertificate-example.json | 68 + .../7.5/GetDeletedCertificates-example.json | 33 + .../7.5/ImportCertificate-example.json | 79 + .../7.5/MergeCertificate-example.json | 70 + .../7.5/PurgeDeletedCertificate-example.json | 12 + .../RecoverDeletedCertificate-example.json | 64 + .../7.5/RestoreCertificate-example.json | 72 + .../7.5/SetCertificateContacts-example.json | 41 + .../7.5/SetCertificateIssuer-example.json | 52 + .../7.5/UpdateCertificate-example.json | 41 + .../7.5/UpdateCertificateIssuer-example.json | 42 + .../UpdateCertificateOperation-example.json | 27 + .../7.5/UpdateCertificatePolicy-example.json | 82 + .../BackupCertificate-example.json | 16 + .../CreateCertificate-example.json | 49 + .../DeleteCertificate-example.json | 67 + .../DeleteCertificateContacts-example.json | 27 + .../DeleteCertificateIssuer-example.json | 35 + .../DeleteCertificateOperation-example.json | 24 + .../7.6-preview.1/GetCertificate-example.json | 65 + .../GetCertificateContacts-example.json | 27 + .../GetCertificateIssuer-example.json | 35 + .../GetCertificateIssuers-example.json | 29 + .../GetCertificateOperation-example.json | 24 + .../GetCertificatePolicy-example.json | 49 + .../GetCertificateVersions-example.json | 40 + .../GetCertificates-example.json | 39 + .../GetDeletedCertificate-example.json | 68 + .../GetDeletedCertificates-example.json | 33 + .../ImportCertificate-example.json | 79 + .../MergeCertificate-example.json | 70 + .../PurgeDeletedCertificate-example.json | 12 + .../RecoverDeletedCertificate-example.json | 64 + .../RestoreCertificate-example.json | 72 + .../SetCertificateContacts-example.json | 41 + .../SetCertificateIssuer-example.json | 52 + .../UpdateCertificate-example.json | 41 + .../UpdateCertificateIssuer-example.json | 42 + .../UpdateCertificateOperation-example.json | 27 + .../UpdateCertificatePolicy-example.json | 82 + .../Security.KeyVault.Certificates/main.tsp | 52 + .../Security.KeyVault.Certificates/models.tsp | 1042 +++++++ .../Security.KeyVault.Certificates/routes.tsp | 609 ++++ .../tspconfig.yaml | 63 + specification/keyvault/cspell.yaml | 13 +- .../preview/7.6-preview.1/certificates.json | 2638 ++++++++++------- .../examples/BackupCertificate-example.json | 4 +- .../examples/CreateCertificate-example.json | 4 +- .../examples/DeleteCertificate-example.json | 4 +- .../DeleteCertificateContacts-example.json | 4 +- .../DeleteCertificateIssuer-example.json | 4 +- .../DeleteCertificateOperation-example.json | 4 +- .../examples/GetCertificate-example.json | 4 +- .../GetCertificateContacts-example.json | 4 +- .../GetCertificateIssuer-example.json | 4 +- .../GetCertificateIssuers-example.json | 4 +- .../GetCertificateOperation-example.json | 4 +- .../GetCertificatePolicy-example.json | 4 +- .../GetCertificateVersions-example.json | 4 +- .../examples/GetCertificates-example.json | 4 +- .../GetDeletedCertificate-example.json | 4 +- .../GetDeletedCertificates-example.json | 4 +- .../examples/ImportCertificate-example.json | 4 +- .../examples/MergeCertificate-example.json | 4 +- .../PurgeDeletedCertificate-example.json | 4 +- .../RecoverDeletedCertificate-example.json | 4 +- .../examples/RestoreCertificate-example.json | 4 +- .../SetCertificateContacts-example.json | 4 +- .../SetCertificateIssuer-example.json | 4 +- .../examples/UpdateCertificate-example.json | 4 +- .../UpdateCertificateIssuer-example.json | 4 +- .../UpdateCertificateOperation-example.json | 4 +- .../UpdateCertificatePolicy-example.json | 4 +- .../stable/7.5/certificates.json | 2638 ++++++++++------- .../examples/BackupCertificate-example.json | 4 +- .../examples/CreateCertificate-example.json | 4 +- .../examples/DeleteCertificate-example.json | 4 +- .../DeleteCertificateContacts-example.json | 4 +- .../DeleteCertificateIssuer-example.json | 4 +- .../DeleteCertificateOperation-example.json | 4 +- .../7.5/examples/GetCertificate-example.json | 4 +- .../GetCertificateContacts-example.json | 4 +- .../GetCertificateIssuer-example.json | 4 +- .../GetCertificateIssuers-example.json | 4 +- .../GetCertificateOperation-example.json | 4 +- .../GetCertificatePolicy-example.json | 4 +- .../GetCertificateVersions-example.json | 4 +- .../7.5/examples/GetCertificates-example.json | 4 +- .../GetDeletedCertificate-example.json | 4 +- .../GetDeletedCertificates-example.json | 4 +- .../examples/ImportCertificate-example.json | 4 +- .../examples/MergeCertificate-example.json | 4 +- .../PurgeDeletedCertificate-example.json | 4 +- .../RecoverDeletedCertificate-example.json | 4 +- .../examples/RestoreCertificate-example.json | 4 +- .../SetCertificateContacts-example.json | 4 +- .../SetCertificateIssuer-example.json | 4 +- .../examples/UpdateCertificate-example.json | 4 +- .../UpdateCertificateIssuer-example.json | 4 +- .../UpdateCertificateOperation-example.json | 4 +- .../UpdateCertificatePolicy-example.json | 4 +- specification/keyvault/data-plane/readme.md | 9 + 117 files changed, 7453 insertions(+), 2334 deletions(-) create mode 100644 specification/keyvault/Security.KeyVault.Certificates/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/BackupCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/CreateCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuers-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificatePolicy-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateVersions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificates-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificates-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/ImportCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/MergeCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/PurgeDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RecoverDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RestoreCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificatePolicy-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/BackupCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/CreateCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuers-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificatePolicy-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateVersions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificates-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificates-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/ImportCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/MergeCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/PurgeDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RecoverDeletedCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RestoreCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateContacts-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificate-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateIssuer-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateOperation-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificatePolicy-example.json create mode 100644 specification/keyvault/Security.KeyVault.Certificates/main.tsp create mode 100644 specification/keyvault/Security.KeyVault.Certificates/models.tsp create mode 100644 specification/keyvault/Security.KeyVault.Certificates/routes.tsp create mode 100644 specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml diff --git a/specification/keyvault/Security.KeyVault.Certificates/client.tsp b/specification/keyvault/Security.KeyVault.Certificates/client.tsp new file mode 100644 index 000000000000..184b0f82a02c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/client.tsp @@ -0,0 +1,89 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(KeyVault, "Certificate", "java"); +@@clientName(KeyVault, "Client", "go"); + +using KeyVault; + +// Java configuration +@@usage(CertificateIssuerItem, Usage.input, "java"); +@@usage(CertificateOperation, Usage.input, "java"); +@@usage(IssuerBundle, Usage.input, "java"); +@@clientName(AdministratorDetails, "AdministratorContact", "java"); +@@clientName(AdministratorDetails.EmailAddress, "email", "java"); +@@clientName(CertificateAttributes.recoveryLevel, "adminContacts", "java"); +@@clientName(Contact, "CertificateContact", "java"); +@@clientName(Contact.EmailAddress, "email", "java"); +@@clientName(Error, "CertificateOperationError", "java"); +@@clientName(JsonWebKeyCurveName, "CertificateKeyCurveName", "java"); +@@clientName(JsonWebKeyType, "CertificateKeyType", "java"); +@@clientName(KeyUsageType, "CertificateKeyUsage", "java"); +@@clientName(SubjectAlternativeNames.upns, "userPrincipalNames", "java"); + +// rename Go operations +@@clientName(setCertificateContacts, "SetContacts", "go"); + +@@clientName(CertificateCreateParameters, "CreateCertificateParameters", "go"); +@@clientName(CertificateImportParameters, "ImportCertificateParameters", "go"); +@@clientName(CertificateIssuerSetParameters, "SetIssuerParameters", "go"); +@@clientName(CertificateIssuerUpdateParameters, "UpdateIssuerParameters", "go"); +@@clientName(CertificateMergeParameters, "MergeCertificateParameters", "go"); +@@clientName(CertificateOperationUpdateParameter, + "UpdateCertificateOperationParameter", + "go" +); +@@clientName(CertificateRestoreParameters, + "RestoreCertificateParameters", + "go" +); +@@clientName(CertificateUpdateParameters, "UpdateCertificateParameters", "go"); + +@@clientName(getCertificates, "ListCertificateProperties", "go"); +@@clientName(getCertificateIssuers, "ListIssuerProperties", "go"); +@@clientName(getCertificateVersions, "ListCertificatePropertiesVersions", "go"); +@@clientName(getDeletedCertificates, "ListDeletedCertificateProperties", "go"); +@@clientName(CertificateListResult, "CertificatePropertiesListResult", "go"); +@@clientName(DeletedCertificateListResult, + "DeletedCertificatePropertiesListResult", + "go" +); + +@@clientName(getCertificateContacts, "GetContacts", "go"); +@@clientName(deleteCertificateContacts, "DeleteContacts", "go"); +@@clientName(setCertificateIssuer, "SetIssuer", "go"); +@@clientName(updateCertificateIssuer, "UpdateIssuer", "go"); +@@clientName(getCertificateIssuer, "GetIssuer", "go"); +@@clientName(deleteCertificateIssuer, "DeleteIssuer", "go"); +@@clientName(CertificateIssuerListResult, "IssuerPropertiesListResult", "go"); + +@@clientName(Action, "LifetimeActionType", "go"); +@@clientName(Trigger, "LifetimeActionTrigger", "go"); +@@clientName(CertificateBundle, "Certificate", "go"); +@@clientName(CertificateItem, "CertificateProperties", "go"); +@@clientName(DeletedCertificateBundle, "DeletedCertificate", "go"); +@@clientName(DeletedCertificateItem, "DeletedCertificateProperties", "go"); +@@clientName(IssuerBundle, "Issuer", "go"); +@@clientName(CertificateIssuerItem, "IssuerProperties", "go"); +@@clientName(CertificateRestoreParameters.certificateBundleBackup, + "CertificateBackup", + "go" +); + +@@clientName(AdministratorDetails, "AdministratorContact", "go"); +@@clientName(OrganizationDetails.admin_details, "AdminContacts", "go"); +@@clientName(Contact.EmailAddress, "Email", "go"); +@@clientName(AdministratorDetails.EmailAddress, "Email", "go"); + +@@clientName(SubjectAlternativeNames.upns, "UserPrincipalNames", "go"); +@@clientName(X509CertificateProperties.ekus, "EnhancedKeyUsage", "go"); + +@@clientName(CertificateBundle.cer, "CER", "go"); +@@clientName(CertificateBundle.kid, "KID", "go"); +@@clientName(CertificateBundle.sid, "SID", "go"); +@@clientName(CertificateOperation.csr, "CSR", "go"); + +@@clientName(JsonWebKeyCurveName, "CurveName", "go"); +@@clientName(JsonWebKeyType, "KeyType", "go"); diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/BackupCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/BackupCertificate-example.json new file mode 100644 index 000000000000..b07cfa1121a2 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/BackupCertificate-example.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "testcert", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" + } + } + }, + "operationId": "BackupCertificate", + "title": "BackupCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/CreateCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/CreateCertificate-example.json new file mode 100644 index 000000000000..97e24336efa5 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/CreateCertificate-example.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "api-version": "7.5", + "parameters": { + "policy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=*.microsoft.com", + "sans": { + "dns_names": [ + "onedrive.microsoft.com", + "xbox.microsoft.com" + ] + } + }, + "issuer": { + "name": "Self" + } + } + } + }, + "responses": { + "202": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending", + "issuer": { + "name": "Self" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "6faacd568ab049a2803861e8dd3ae21f" + } + } + }, + "operationId": "CreateCertificate", + "title": "CreateCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificate-example.json new file mode 100644 index 000000000000..9e96130ece09 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificate-example.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "importCert01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/importCert01", + "deletedDate": 1493938558, + "scheduledPurgeDate": 1501714558, + "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938557, + "updated": 1493938557, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938557, + "updated": 1493938557 + } + } + } + } + }, + "operationId": "DeleteCertificate", + "title": "DeleteCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateContacts-example.json new file mode 100644 index 000000000000..9ece66e01ae3 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateContacts-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "DeleteCertificateContacts", + "title": "DeleteCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateIssuer-example.json new file mode 100644 index 000000000000..4439b5d9c85d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateIssuer-example.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "DeleteCertificateIssuer", + "title": "DeleteCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateOperation-example.json new file mode 100644 index 000000000000..62740bef2260 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/DeleteCertificateOperation-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "deletedRequestedCert01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/deletedRequestedCert01/pending", + "issuer": { + "name": "issuer03" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApf+kGcL+5uivj/ToYbQ15zcx3caEnpzXaX2eJgL0/Kwaz4u2/bNJ9+hoXnlOFFbCp4canVoNvgu8fw5NOu9U3gJNFQwjHeAqfsg8okZGkIk0riIpp4MMb/4GQb2y3B28AcTu2FANdzLoZzBqmQs51KBe1RONkdtqDYXIvnb5G+9+P7PCy5G//Ga0JAP6Y6P8+TrE9JLEj6Sny0ljLMpMyt4rIRAtNfKYSeiWVQmYX4jZfImIW3iq91zwMsRlrzTm80mNfHPCv7V/8NmYuh0MQgCr49lLbbKCgzDyo9h8sblVQvR5TAylpIk7bSQNf4tSdVNHnsF6CJWu6Pg31hyMpQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHVjmYFs3FmecaJ1ExhK1WCFJaQJUTVbPJ1xJ93UJlLivhzI1yhQO9nMC2DKV+E+UCxceqjae6OG5LUhXfYAziS0HTc80+ZcUqrZRb5ZRt+8HU0TPbTDDqjj8wMZ4VlgQ3eXGAGesMfZV3AqWwa5itofvqm8KAmL4Yn/XMSHcKfRx3h9WnC6RXgZ8WNYK+r5o+gHlmuF7/AaNFh8UjIsjjOZQ0Yin/vA4yBEYTt1/OC7pScs3bdL9CIf4rC98qaMSf4B2W/vfrXUo0gGPYcep25jy7xnIltSY80Trn3Mty5YQ0IT+KPQcJKhbryGg6bIy4jJDwS7zkn51MR1q3kNoOA=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "b88791e33d9c4d609d3e3cc3d2d40d11" + } + } + }, + "operationId": "DeleteCertificateOperation", + "title": "DeleteCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificate-example.json new file mode 100644 index 000000000000..b70fc0056698 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificate-example.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "certificate-version": "pending", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "kid": "https://myvault.vault.azure.net/keys/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "sid": "https://myvault.vault.azure.net/secrets/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938289, + "updated": 1493938291, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938289, + "updated": 1493938291 + } + } + } + } + }, + "operationId": "GetCertificate", + "title": "GetCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateContacts-example.json new file mode 100644 index 000000000000..3c1bc4af4e4e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateContacts-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "GetCertificateContacts", + "title": "GetCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuer-example.json new file mode 100644 index 000000000000..2a4873fbd82a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuer-example.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "GetCertificateIssuer", + "title": "GetCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuers-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuers-example.json new file mode 100644 index 000000000000..bf465e734db2 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateIssuers-example.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test" + }, + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer02", + "provider": "Test" + }, + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer03", + "provider": "Test" + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificateIssuers", + "title": "GetCertificateIssuers" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateOperation-example.json new file mode 100644 index 000000000000..b01ef1bb6cf3 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateOperation-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending", + "issuer": { + "name": "Self" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "6faacd568ab049a2803861e8dd3ae21f" + } + } + }, + "operationId": "GetCertificateOperation", + "title": "GetCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificatePolicy-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificatePolicy-example.json new file mode 100644 index 000000000000..d56a56f8d5f7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificatePolicy-example.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1482188947, + "updated": 1482188947 + } + } + } + }, + "operationId": "GetCertificatePolicy", + "title": "GetCertificatePolicy" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateVersions-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateVersions-example.json new file mode 100644 index 000000000000..7f563f24c30c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificateVersions-example.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "listVersionsCert01", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/002ade539442463aba45c0efb42e3e84", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482189534, + "updated": 1482189534 + } + }, + { + "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/7fcb3e9eb8bf43f3a6ff4b9c3740801d", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482189532, + "updated": 1482189532 + } + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificateVersions", + "title": "GetCertificateVersions" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificates-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificates-example.json new file mode 100644 index 000000000000..02eb4f29cf10 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetCertificates-example.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/listCert01", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188987, + "updated": 1482188987 + } + }, + { + "id": "https://myvault.vault.azure.net/certificates/listCert02", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188988, + "updated": 1482188988 + } + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificates", + "title": "GetCertificates" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificate-example.json new file mode 100644 index 000000000000..a74f0ee82e4a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificate-example.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "getDeletedCert", + "api-version": "7.5" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/getDeletedCert", + "deletedDate": 1493938292, + "scheduledPurgeDate": 1501714292, + "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "kid": "https://myvault.vault.azure.net/keys/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "sid": "https://myvault.vault.azure.net/secrets/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938289, + "updated": 1493938291, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938289, + "updated": 1493938291 + } + } + } + } + }, + "operationId": "GetDeletedCertificate", + "title": "GetDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificates-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificates-example.json new file mode 100644 index 000000000000..521d18e9ef49 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/GetDeletedCertificates-example.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/listdeletedcerttest0", + "deletedDate": 1493937659, + "scheduledPurgeDate": 1501713659, + "id": "https://myvault.vault.azure.net/certificates/listdeletedcerttest0", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493937658, + "updated": 1493937658, + "recoveryLevel": "Recoverable+Purgeable" + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1" + } + } + }, + "operationId": "GetDeletedCertificates", + "title": "GetDeletedCertificates" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/ImportCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/ImportCertificate-example.json new file mode 100644 index 000000000000..602786bf8ce5 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/ImportCertificate-example.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "importCert01", + "api-version": "7.5", + "parameters": { + "value": "MIIJ...", + "pwd": "123", + "policy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MII++cut+for+brevity++EPAQj8", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938557, + "updated": 1493938557, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938557, + "updated": 1493938557 + } + } + } + } + }, + "operationId": "ImportCertificate", + "title": "ImportCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/MergeCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/MergeCertificate-example.json new file mode 100644 index 000000000000..07cbebd5080b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/MergeCertificate-example.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "testcert", + "api-version": "7.5", + "parameters": { + "x5c": [ + "MII++cut+for+brevity++EPAQj8" + ] + } + }, + "responses": { + "201": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352", + "kid": "https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352", + "sid": " mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352", + "cer": "MII++cut+for+brevity++EPAQj8", + "x5t": "n14q2wbvyXr71Pcb58NivuiwJKk", + "attributes": { + "enabled": true, + "exp": 1530394215, + "nbf": 1435699215, + "created": 1435699919, + "updated": 1435699919 + }, + "policy": { + "id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/policy", + "key_props": { + "exportable": false, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=Mycert1", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "validity_months": 12 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1435699811, + "updated": 1435699811 + } + } + } + } + }, + "operationId": "MergeCertificate", + "title": "MergeCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/PurgeDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/PurgeDeletedCertificate-example.json new file mode 100644 index 000000000000..4ae5d56c7ad5 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/PurgeDeletedCertificate-example.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "deletedcertificates", + "api-version": "7.5" + }, + "responses": { + "204": {} + }, + "operationId": "PurgeDeletedCertificate", + "title": "PurgeDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RecoverDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RecoverDeletedCertificate-example.json new file mode 100644 index 000000000000..2dbd305ee5e8 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RecoverDeletedCertificate-example.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "CertCreateDeleteRecoverPurgeTest", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "kid": "https://myvault.vault.azure.net/keys/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "sid": "https://myvault.vault.azure.net/secrets/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938486, + "updated": 1493938486, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938486, + "updated": 1493938486 + } + } + } + } + }, + "operationId": "RecoverDeletedCertificate", + "title": "RecoverDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RestoreCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RestoreCertificate-example.json new file mode 100644 index 000000000000..8062b4739a2f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/RestoreCertificate-example.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "parameters": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" + }, + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/testcert/21983500952149bbb3129b0c60e367a6", + "kid": "https://myvault.vault.azure.net/keys/testcert/21983500952149bbb3129b0c60e367a6", + "sid": "https://myvault.vault.azure.net/secrets/testcert/21983500952149bbb3129b0c60e367a6", + "x5t": "Z-n6Mydb08bmyOgk7bmx5HT8tyo", + "cer": "MIIDMjCCAhqgAwIBAgIQGn/FrGQZT/Cd9kgXIsytEjANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTAeFw0xODA0MTcxODI2MjZaFw0xOTA0MTcxODM2MjZaMBYxFDASBgNVBAMTC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsODIu9EJhfnn57k4++j6dC1M6Egi9aZucFQ9Jc29vFG9L9BkzllPGluKKdH1ypsrAUif7yGaq5d1nDyLhZUncU8dV/YIA7oll/fC+d0H4A37kVbM/60zXhXnKRx+DRZ2hJQzNBOodCaZpyZZEuYvtWdSCSILpa0R7yXYevjLaG5LfckOzuurXqeos7WB+l2q1c+6zx1KbNXbBl7QOz2nzk9oJU7CdhPOc+LOLppmsXRwwluKtmCDyKdrKAF/dANp5zGXFsognQcRctLSGQp8FbgBVQyZ+v81n9bPpSaBoUQMcH4uG9jPO6CWwbDSWE+FVYAm5kgjuW/1hqRSnOEV8QIDAQABo3wwejAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUaYJoBFokrORdsxOTA8sgrosMOmgwHQYDVR0OBBYEFGmCaARaJKzkXbMTkwPLIK6LDDpoMA0GCSqGSIb3DQEBCwUAA4IBAQAxL3t0kV1dq/PGUztjW+qK6Nh4sx7jsU59JtjON6zcibJ4hM+Q3Z+cEvW9zuGkuTbLz6fKNL9VnkF1LnlWTsyRmS7bF15/7iOgfdrr0vkJKVM1Zv/tqKEpBJ7Cbc0vW/VJQxZN+OlqGNc9bcx3cnqkRwpkgM25T0dVpoWtCgMwayUtbPFbTZWHHbpzHLF2BzYf5HyW1BoKXcVPM3r/rS7RETasRRsz2GqXXdfhjCd+HKVyv5kD9N3WcFNUsaq3TqAUZyOx9bO0Cn3gkmgz05JpfhPEylXwVpVAccOoXsNoFdxEKGO0w7pk7PwOhsW8sFprdXWp6OxtL0rrCNFF/llT", + "attributes": { + "enabled": true, + "nbf": 1523989586, + "exp": 1555526186, + "created": 1523990186, + "updated": 1523990186, + "recoveryLevel": "Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/testcert/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=example.com", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true, + "created": 1523990175, + "updated": 1523990175 + } + } + } + } + }, + "operationId": "RestoreCertificate", + "title": "RestoreCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateContacts-example.json new file mode 100644 index 000000000000..9d9f8db73dc6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateContacts-example.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5", + "contacts": { + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "SetCertificateContacts", + "title": "SetCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateIssuer-example.json new file mode 100644 index 000000000000..f9ae4051661d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/SetCertificateIssuer-example.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.5", + "parameter": { + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser", + "pwd": "password" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "SetCertificateIssuer", + "title": "SetCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificate-example.json new file mode 100644 index 000000000000..6d86530c7ece --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificate-example.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "certificate-version": "c3d31d7b36c942ad83ef36fc0785a4fc", + "api-version": "7.5", + "parameters": { + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799 + }, + "tags": { + "department": "KeyVaultTest" + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "kid": "https://myvault.vault.azure.net/keys/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "sid": "https://myvault.vault.azure.net/secrets/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188981, + "updated": 1482188981 + }, + "tags": { + "department": "KeyVaultTest" + } + } + } + }, + "operationId": "UpdateCertificate", + "title": "UpdateCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateIssuer-example.json new file mode 100644 index 000000000000..57e08df68ba5 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateIssuer-example.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.5", + "parameter": { + "provider": "Test", + "credentials": { + "account_id": "newuseraccount", + "pwd": "newpassword" + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "newuseraccount" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "UpdateCertificateIssuer", + "title": "UpdateCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateOperation-example.json new file mode 100644 index 000000000000..38af43b5578f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificateOperation-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "cancellationRequestedCert01", + "api-version": "7.5", + "certificateOperation": { + "cancellation_requested": true + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/cancellationRequestedCert01/pending", + "issuer": { + "name": "issuer02" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxM2zqnPtpH8aiHX5TdEoZLO0Y6fsjk9QcjKgnHomrwUc9vK20UYYEPKt9aGOT7HNx0do8OulPCnLPrKowci8UHu1qRW/qHvsOJQ/UrQoMCHxtXptVc7Avx8WQb045sCdgp/Cl4xO8LMZa70kE4dghZU9zmNZk8wqDIxyYdh1lqqfGe49EWOxcfszTeeKs8KCsQznjExbsudBHLLWoX4VFTGMe3VcIPcV6iFf70buHKznDMXFiRC0IYwkc/GyWIadB1CSEae8k/0evsPI5lYYZLaO/kLffEUtzysqxZNCQR+S0eVPTGTLHa+fndnPPs65XZDzSZi2fZL01oXUfCAQQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAKto/ZF9+02fQ3sLuIsRuap/O/AZz3IhAubNfyCaWvVGVAQz/Aqpf5c/liyKhxqRG6LR9Zu50oxRK5222ezR+56vJikjdXRVShf2xYsMm1CbCM1JuzsnkTeoUHHE12xx1srH/9TH+DVZIk6NXxc4wVIagbpwxiS5gR3Nly5k0ZVv7R1B79J0GUqSwK6qjuooWrBsYMEx319hz8fB/Y4jnPE8p+Cnn3AGEqnebVngXncq/QnHxnrRVfvKFVySqRvlsvM8buILmBbIaywEUqwhNtZX2i9E7reEJ8aeZcf+lAeKF3YDvffaXGTc75aiZlBk30Lv/hn0vs9T0/FedUnIae4=", + "cancellation_requested": true, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "3dd81d528cc84c5a837c607f1a50f2e1" + } + } + }, + "operationId": "UpdateCertificateOperation", + "title": "UpdateCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificatePolicy-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificatePolicy-example.json new file mode 100644 index 000000000000..eea6c430abb6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.5/UpdateCertificatePolicy-example.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "api-version": "7.5", + "certificatePolicy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true, + "created": 1482188947, + "updated": 1482188948 + } + } + } + }, + "operationId": "UpdateCertificatePolicy", + "title": "UpdateCertificatePolicy" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/BackupCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/BackupCertificate-example.json new file mode 100644 index 000000000000..055e7b58389c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/BackupCertificate-example.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "testcert", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" + } + } + }, + "operationId": "BackupCertificate", + "title": "BackupCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/CreateCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/CreateCertificate-example.json new file mode 100644 index 000000000000..225ca1871ca6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/CreateCertificate-example.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "api-version": "7.6-preview.1", + "parameters": { + "policy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=*.microsoft.com", + "sans": { + "dns_names": [ + "onedrive.microsoft.com", + "xbox.microsoft.com" + ] + } + }, + "issuer": { + "name": "Self" + } + } + } + }, + "responses": { + "202": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending", + "issuer": { + "name": "Self" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "6faacd568ab049a2803861e8dd3ae21f" + } + } + }, + "operationId": "CreateCertificate", + "title": "CreateCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificate-example.json new file mode 100644 index 000000000000..337bb017bfa9 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificate-example.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "importCert01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/importCert01", + "deletedDate": 1493938558, + "scheduledPurgeDate": 1501714558, + "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938557, + "updated": 1493938557, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938557, + "updated": 1493938557 + } + } + } + } + }, + "operationId": "DeleteCertificate", + "title": "DeleteCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateContacts-example.json new file mode 100644 index 000000000000..5f2b24c266df --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateContacts-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "DeleteCertificateContacts", + "title": "DeleteCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateIssuer-example.json new file mode 100644 index 000000000000..0d006531e5e9 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateIssuer-example.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "DeleteCertificateIssuer", + "title": "DeleteCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateOperation-example.json new file mode 100644 index 000000000000..847a2c21febd --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/DeleteCertificateOperation-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "deletedRequestedCert01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/deletedRequestedCert01/pending", + "issuer": { + "name": "issuer03" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApf+kGcL+5uivj/ToYbQ15zcx3caEnpzXaX2eJgL0/Kwaz4u2/bNJ9+hoXnlOFFbCp4canVoNvgu8fw5NOu9U3gJNFQwjHeAqfsg8okZGkIk0riIpp4MMb/4GQb2y3B28AcTu2FANdzLoZzBqmQs51KBe1RONkdtqDYXIvnb5G+9+P7PCy5G//Ga0JAP6Y6P8+TrE9JLEj6Sny0ljLMpMyt4rIRAtNfKYSeiWVQmYX4jZfImIW3iq91zwMsRlrzTm80mNfHPCv7V/8NmYuh0MQgCr49lLbbKCgzDyo9h8sblVQvR5TAylpIk7bSQNf4tSdVNHnsF6CJWu6Pg31hyMpQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHVjmYFs3FmecaJ1ExhK1WCFJaQJUTVbPJ1xJ93UJlLivhzI1yhQO9nMC2DKV+E+UCxceqjae6OG5LUhXfYAziS0HTc80+ZcUqrZRb5ZRt+8HU0TPbTDDqjj8wMZ4VlgQ3eXGAGesMfZV3AqWwa5itofvqm8KAmL4Yn/XMSHcKfRx3h9WnC6RXgZ8WNYK+r5o+gHlmuF7/AaNFh8UjIsjjOZQ0Yin/vA4yBEYTt1/OC7pScs3bdL9CIf4rC98qaMSf4B2W/vfrXUo0gGPYcep25jy7xnIltSY80Trn3Mty5YQ0IT+KPQcJKhbryGg6bIy4jJDwS7zkn51MR1q3kNoOA=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "b88791e33d9c4d609d3e3cc3d2d40d11" + } + } + }, + "operationId": "DeleteCertificateOperation", + "title": "DeleteCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificate-example.json new file mode 100644 index 000000000000..f68014a529e7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificate-example.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "certificate-version": "pending", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "kid": "https://myvault.vault.azure.net/keys/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "sid": "https://myvault.vault.azure.net/secrets/selfSignedCert01/f60f2a4f8ae442cfb41ca2090bd4b769", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938289, + "updated": 1493938291, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938289, + "updated": 1493938291 + } + } + } + } + }, + "operationId": "GetCertificate", + "title": "GetCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateContacts-example.json new file mode 100644 index 000000000000..3c167c00ac17 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateContacts-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "GetCertificateContacts", + "title": "GetCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuer-example.json new file mode 100644 index 000000000000..322ba45bb498 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuer-example.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "GetCertificateIssuer", + "title": "GetCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuers-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuers-example.json new file mode 100644 index 000000000000..51c7ac44d3a0 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateIssuers-example.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test" + }, + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer02", + "provider": "Test" + }, + { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer03", + "provider": "Test" + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificateIssuers", + "title": "GetCertificateIssuers" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateOperation-example.json new file mode 100644 index 000000000000..9c36c7601fce --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateOperation-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "selfSignedCert01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/selfSignedCert01/pending", + "issuer": { + "name": "Self" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4=", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "6faacd568ab049a2803861e8dd3ae21f" + } + } + }, + "operationId": "GetCertificateOperation", + "title": "GetCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificatePolicy-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificatePolicy-example.json new file mode 100644 index 000000000000..9cea5880c516 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificatePolicy-example.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1482188947, + "updated": 1482188947 + } + } + } + }, + "operationId": "GetCertificatePolicy", + "title": "GetCertificatePolicy" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateVersions-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateVersions-example.json new file mode 100644 index 000000000000..b1b73b715e81 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificateVersions-example.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "listVersionsCert01", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/002ade539442463aba45c0efb42e3e84", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482189534, + "updated": 1482189534 + } + }, + { + "id": "https://myvault.vault.azure.net/certificates/listVersionsCert01/7fcb3e9eb8bf43f3a6ff4b9c3740801d", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482189532, + "updated": 1482189532 + } + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificateVersions", + "title": "GetCertificateVersions" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificates-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificates-example.json new file mode 100644 index 000000000000..0716b8061c6c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetCertificates-example.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/certificates/listCert01", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188987, + "updated": 1482188987 + } + }, + { + "id": "https://myvault.vault.azure.net/certificates/listCert02", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188988, + "updated": 1482188988 + } + } + ], + "nextLink": null + } + } + }, + "operationId": "GetCertificates", + "title": "GetCertificates" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificate-example.json new file mode 100644 index 000000000000..04aa34b77401 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificate-example.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "getDeletedCert", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/getDeletedCert", + "deletedDate": 1493938292, + "scheduledPurgeDate": 1501714292, + "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "kid": "https://myvault.vault.azure.net/keys/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "sid": "https://myvault.vault.azure.net/secrets/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938289, + "updated": 1493938291, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/getDeletedCert/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938289, + "updated": 1493938291 + } + } + } + } + }, + "operationId": "GetDeletedCertificate", + "title": "GetDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificates-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificates-example.json new file mode 100644 index 000000000000..4713b1d4aab1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/GetDeletedCertificates-example.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "recoveryId": "https://myvault.vault.azure.net/deletedcertificates/listdeletedcerttest0", + "deletedDate": 1493937659, + "scheduledPurgeDate": 1501713659, + "id": "https://myvault.vault.azure.net/certificates/listdeletedcerttest0", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493937658, + "updated": 1493937658, + "recoveryLevel": "Recoverable+Purgeable" + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1" + } + } + }, + "operationId": "GetDeletedCertificates", + "title": "GetDeletedCertificates" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/ImportCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/ImportCertificate-example.json new file mode 100644 index 000000000000..43f26612871e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/ImportCertificate-example.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "importCert01", + "api-version": "7.6-preview.1", + "parameters": { + "value": "MIIJ...", + "pwd": "123", + "policy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "kid": "https://myvault.vault.azure.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "sid": "https://myvault.vault.azure.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MII++cut+for+brevity++EPAQj8", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938557, + "updated": 1493938557, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/importCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938557, + "updated": 1493938557 + } + } + } + } + }, + "operationId": "ImportCertificate", + "title": "ImportCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/MergeCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/MergeCertificate-example.json new file mode 100644 index 000000000000..3b0f087479ca --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/MergeCertificate-example.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "testcert", + "api-version": "7.6-preview.1", + "parameters": { + "x5c": [ + "MII++cut+for+brevity++EPAQj8" + ] + } + }, + "responses": { + "201": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352", + "kid": "https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352", + "sid": " mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352", + "cer": "MII++cut+for+brevity++EPAQj8", + "x5t": "n14q2wbvyXr71Pcb58NivuiwJKk", + "attributes": { + "enabled": true, + "exp": 1530394215, + "nbf": 1435699215, + "created": 1435699919, + "updated": 1435699919 + }, + "policy": { + "id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/policy", + "key_props": { + "exportable": false, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=Mycert1", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "validity_months": 12 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1435699811, + "updated": 1435699811 + } + } + } + } + }, + "operationId": "MergeCertificate", + "title": "MergeCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/PurgeDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/PurgeDeletedCertificate-example.json new file mode 100644 index 000000000000..617357f41faa --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/PurgeDeletedCertificate-example.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "deletedcertificates", + "api-version": "7.6-preview.1" + }, + "responses": { + "204": {} + }, + "operationId": "PurgeDeletedCertificate", + "title": "PurgeDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RecoverDeletedCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RecoverDeletedCertificate-example.json new file mode 100644 index 000000000000..f8651ed7f2c6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RecoverDeletedCertificate-example.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "CertCreateDeleteRecoverPurgeTest", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "kid": "https://myvault.vault.azure.net/keys/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "sid": "https://myvault.vault.azure.net/secrets/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1493938486, + "updated": 1493938486, + "recoveryLevel": "Recoverable+Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/CertCreateDeleteRecoverPurgeTest/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1493938486, + "updated": 1493938486 + } + } + } + } + }, + "operationId": "RecoverDeletedCertificate", + "title": "RecoverDeletedCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RestoreCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RestoreCertificate-example.json new file mode 100644 index 000000000000..c41c4b53df08 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/RestoreCertificate-example.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "parameters": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" + }, + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/testcert/21983500952149bbb3129b0c60e367a6", + "kid": "https://myvault.vault.azure.net/keys/testcert/21983500952149bbb3129b0c60e367a6", + "sid": "https://myvault.vault.azure.net/secrets/testcert/21983500952149bbb3129b0c60e367a6", + "x5t": "Z-n6Mydb08bmyOgk7bmx5HT8tyo", + "cer": "MIIDMjCCAhqgAwIBAgIQGn/FrGQZT/Cd9kgXIsytEjANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTAeFw0xODA0MTcxODI2MjZaFw0xOTA0MTcxODM2MjZaMBYxFDASBgNVBAMTC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsODIu9EJhfnn57k4++j6dC1M6Egi9aZucFQ9Jc29vFG9L9BkzllPGluKKdH1ypsrAUif7yGaq5d1nDyLhZUncU8dV/YIA7oll/fC+d0H4A37kVbM/60zXhXnKRx+DRZ2hJQzNBOodCaZpyZZEuYvtWdSCSILpa0R7yXYevjLaG5LfckOzuurXqeos7WB+l2q1c+6zx1KbNXbBl7QOz2nzk9oJU7CdhPOc+LOLppmsXRwwluKtmCDyKdrKAF/dANp5zGXFsognQcRctLSGQp8FbgBVQyZ+v81n9bPpSaBoUQMcH4uG9jPO6CWwbDSWE+FVYAm5kgjuW/1hqRSnOEV8QIDAQABo3wwejAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUaYJoBFokrORdsxOTA8sgrosMOmgwHQYDVR0OBBYEFGmCaARaJKzkXbMTkwPLIK6LDDpoMA0GCSqGSIb3DQEBCwUAA4IBAQAxL3t0kV1dq/PGUztjW+qK6Nh4sx7jsU59JtjON6zcibJ4hM+Q3Z+cEvW9zuGkuTbLz6fKNL9VnkF1LnlWTsyRmS7bF15/7iOgfdrr0vkJKVM1Zv/tqKEpBJ7Cbc0vW/VJQxZN+OlqGNc9bcx3cnqkRwpkgM25T0dVpoWtCgMwayUtbPFbTZWHHbpzHLF2BzYf5HyW1BoKXcVPM3r/rS7RETasRRsz2GqXXdfhjCd+HKVyv5kD9N3WcFNUsaq3TqAUZyOx9bO0Cn3gkmgz05JpfhPEylXwVpVAccOoXsNoFdxEKGO0w7pk7PwOhsW8sFprdXWp6OxtL0rrCNFF/llT", + "attributes": { + "enabled": true, + "nbf": 1523989586, + "exp": 1555526186, + "created": 1523990186, + "updated": 1523990186, + "recoveryLevel": "Purgeable" + }, + "policy": { + "id": "https://myvault.vault.azure.net/certificates/testcert/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=example.com", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true, + "created": 1523990175, + "updated": 1523990175 + } + } + } + } + }, + "operationId": "RestoreCertificate", + "title": "RestoreCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateContacts-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateContacts-example.json new file mode 100644 index 000000000000..1aec2a573363 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateContacts-example.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1", + "contacts": { + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/contacts", + "contacts": [ + { + "email": "admin@contoso.com", + "name": "John Doe", + "phone": "1111111111" + }, + { + "email": "admin@contoso2.com", + "name": "Johnathan Doeman", + "phone": "2222222222" + } + ] + } + } + }, + "operationId": "SetCertificateContacts", + "title": "SetCertificateContacts" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateIssuer-example.json new file mode 100644 index 000000000000..3eeccacc0085 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/SetCertificateIssuer-example.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.6-preview.1", + "parameter": { + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser", + "pwd": "password" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "SetCertificateIssuer", + "title": "SetCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificate-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificate-example.json new file mode 100644 index 000000000000..d3fff014819f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificate-example.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "certificate-version": "c3d31d7b36c942ad83ef36fc0785a4fc", + "api-version": "7.6-preview.1", + "parameters": { + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799 + }, + "tags": { + "department": "KeyVaultTest" + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "kid": "https://myvault.vault.azure.net/keys/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "sid": "https://myvault.vault.azure.net/secrets/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc", + "x5t": "fLi3U52HunIVNXubkEnf8tP6Wbo", + "cer": "MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE=", + "attributes": { + "enabled": true, + "nbf": 1430344421, + "exp": 2208988799, + "created": 1482188981, + "updated": 1482188981 + }, + "tags": { + "department": "KeyVaultTest" + } + } + } + }, + "operationId": "UpdateCertificate", + "title": "UpdateCertificate" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateIssuer-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateIssuer-example.json new file mode 100644 index 000000000000..0fda2872d4e3 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateIssuer-example.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "issuer-name": "issuer01", + "api-version": "7.6-preview.1", + "parameter": { + "provider": "Test", + "credentials": { + "account_id": "newuseraccount", + "pwd": "newpassword" + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/issuers/issuer01", + "provider": "Test", + "credentials": { + "account_id": "newuseraccount" + }, + "org_details": { + "admin_details": [ + { + "first_name": "John", + "last_name": "Doe", + "email": "admin@microsoft.com", + "phone": "4255555555" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1482188806, + "updated": 1482189526 + } + } + } + }, + "operationId": "UpdateCertificateIssuer", + "title": "UpdateCertificateIssuer" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateOperation-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateOperation-example.json new file mode 100644 index 000000000000..b1d1aa4bd7a3 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificateOperation-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "cancellationRequestedCert01", + "api-version": "7.6-preview.1", + "certificateOperation": { + "cancellation_requested": true + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/cancellationRequestedCert01/pending", + "issuer": { + "name": "issuer02" + }, + "csr": "MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxM2zqnPtpH8aiHX5TdEoZLO0Y6fsjk9QcjKgnHomrwUc9vK20UYYEPKt9aGOT7HNx0do8OulPCnLPrKowci8UHu1qRW/qHvsOJQ/UrQoMCHxtXptVc7Avx8WQb045sCdgp/Cl4xO8LMZa70kE4dghZU9zmNZk8wqDIxyYdh1lqqfGe49EWOxcfszTeeKs8KCsQznjExbsudBHLLWoX4VFTGMe3VcIPcV6iFf70buHKznDMXFiRC0IYwkc/GyWIadB1CSEae8k/0evsPI5lYYZLaO/kLffEUtzysqxZNCQR+S0eVPTGTLHa+fndnPPs65XZDzSZi2fZL01oXUfCAQQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAKto/ZF9+02fQ3sLuIsRuap/O/AZz3IhAubNfyCaWvVGVAQz/Aqpf5c/liyKhxqRG6LR9Zu50oxRK5222ezR+56vJikjdXRVShf2xYsMm1CbCM1JuzsnkTeoUHHE12xx1srH/9TH+DVZIk6NXxc4wVIagbpwxiS5gR3Nly5k0ZVv7R1B79J0GUqSwK6qjuooWrBsYMEx319hz8fB/Y4jnPE8p+Cnn3AGEqnebVngXncq/QnHxnrRVfvKFVySqRvlsvM8buILmBbIaywEUqwhNtZX2i9E7reEJ8aeZcf+lAeKF3YDvffaXGTc75aiZlBk30Lv/hn0vs9T0/FedUnIae4=", + "cancellation_requested": true, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "3dd81d528cc84c5a837c607f1a50f2e1" + } + } + }, + "operationId": "UpdateCertificateOperation", + "title": "UpdateCertificateOperation" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificatePolicy-example.json b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificatePolicy-example.json new file mode 100644 index 000000000000..09ed930e0efc --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/examples/7.6-preview.1/UpdateCertificatePolicy-example.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "certificate-name": "updateCert01", + "api-version": "7.6-preview.1", + "certificatePolicy": { + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/certificates/updateCert01/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=KeyVaultTest", + "ekus": [], + "key_usage": [], + "validity_months": 297 + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self" + }, + "attributes": { + "enabled": true, + "created": 1482188947, + "updated": 1482188948 + } + } + } + }, + "operationId": "UpdateCertificatePolicy", + "title": "UpdateCertificatePolicy" +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/main.tsp b/specification/keyvault/Security.KeyVault.Certificates/main.tsp new file mode 100644 index 000000000000..b9cf97abdda7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/main.tsp @@ -0,0 +1,52 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.Core; + +/** + * The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + */ +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://vault.azure.net/.default"], + } + ]> +) +@service({ + title: "KeyVaultClient", +}) +@versioned(Versions) +@server( + "{vaultBaseUrl}", + "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + { + vaultBaseUrl: url, + } +) +namespace KeyVault; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 7.5 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.5`: "7.5", + + /** + * The 7.6-preview.1 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.6_preview.1`: "7.6-preview.1", +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/models.tsp b/specification/keyvault/Security.KeyVault.Certificates/models.tsp new file mode 100644 index 000000000000..8855f4c90855 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/models.tsp @@ -0,0 +1,1042 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.Core; + +namespace KeyVault; + +/** + * Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval. + */ +union DeletionRecoveryLevel { + string, + + /** + * Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.) + */ + Purgeable: "Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered + */ + RecoverablePurgeable: "Recoverable+Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered + */ + Recoverable: "Recoverable", + + /** + * Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered + */ + RecoverableProtectedSubscription: "Recoverable+ProtectedSubscription", + + /** + * Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled. + */ + CustomizedRecoverablePurgeable: "CustomizedRecoverable+Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available. + */ + CustomizedRecoverable: "CustomizedRecoverable", + + /** + * Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled. + */ + CustomizedRecoverableProtectedSubscription: "CustomizedRecoverable+ProtectedSubscription", +} + +/** + * The type of key pair to be used for the certificate. + */ +union JsonWebKeyType { + string, + + /** Elliptic Curve. */ + EC: "EC", + + /** Elliptic Curve with a private key which is not exportable from the HSM. */ + EC_HSM: "EC-HSM", + + /** RSA (https://tools.ietf.org/html/rfc3447). */ + RSA: "RSA", + + /** RSA with a private key which is not exportable from the HSM. */ + RSA_HSM: "RSA-HSM", + + /** Octet sequence (used to represent symmetric keys). */ + oct: "oct", + + /** Octet sequence with a private key which is not exportable from the HSM. */ + oct_HSM: "oct-HSM", +} + +/** + * Elliptic curve name. For valid values, see JsonWebKeyCurveName. + */ +union JsonWebKeyCurveName { + string, + + /** The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. */ + P_256: "P-256", + + /** The NIST P-384 elliptic curve, AKA SECG curve SECP384R1. */ + P_384: "P-384", + + /** The NIST P-521 elliptic curve, AKA SECG curve SECP521R1. */ + P_521: "P-521", + + /** The SECG SECP256K1 elliptic curve. */ + P_256K: "P-256K", +} + +/** + * Supported usages of a certificate key. + */ +union KeyUsageType { + string, + + /** Indicates that the certificate key can be used as a digital signature. */ + digitalSignature: "digitalSignature", + + /** Indicates that the certificate key can be used for authentication. */ + nonRepudiation: "nonRepudiation", + + /** Indicates that the certificate key can be used for key encryption. */ + keyEncipherment: "keyEncipherment", + + /** Indicates that the certificate key can be used for data encryption. */ + dataEncipherment: "dataEncipherment", + + /** Indicates that the certificate key can be used to determine key agreement, such as a key created using the Diffie-Hellman key agreement algorithm. */ + keyAgreement: "keyAgreement", + + /** Indicates that the certificate key can be used to sign certificates. */ + keyCertSign: "keyCertSign", + + /** Indicates that the certificate key can be used to sign a certificate revocation list. */ + cRLSign: "cRLSign", + + /** Indicates that the certificate key can be used for encryption only. */ + encipherOnly: "encipherOnly", + + /** Indicates that the certificate key can be used for decryption only. */ + decipherOnly: "decipherOnly", +} + +/** + * The type of the action. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "Intentional enum; originally modelAsString=false" +enum CertificatePolicyAction { + /** A certificate policy that will email certificate contacts. */ + EmailContacts: "EmailContacts", + + /** A certificate policy that will auto-renew a certificate. */ + AutoRenew: "AutoRenew", +} + +/** + * The certificate list result. + */ +@pagedResult +model CertificateListResult { + /** + * A response message containing a list of certificates in the key vault along with a link to the next page of certificates. + */ + @items + value?: CertificateItem[]; + + /** + * The URL to get the next set of certificates. + */ + @TypeSpec.nextLink + @visibility("read") + nextLink?: string; +} + +/** + * The certificate item containing certificate metadata. + */ +model CertificateItem { + /** + * Certificate identifier. + */ + id?: string; + + /** + * The certificate management attributes. + */ + attributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; + + /** + * Thumbprint of the certificate. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "x5t") + @encode("base64url") + X509Thumbprint?: bytes; +} + +/** + * The certificate management attributes. + */ +model CertificateAttributes { + ...Attributes; + + /** + * softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. + */ + @visibility("read") + recoverableDays?: int32; + + /** + * Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval. + */ + @visibility("read") + recoveryLevel?: DeletionRecoveryLevel; +} + +/** + * The object attributes managed by the KeyVault service. + */ +model Attributes { + /** + * Determines whether the object is enabled. + */ + enabled?: boolean; + + /** + * Not before date in UTC. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "nbf") + @encode("unixTimestamp", int32) + NotBefore?: utcDateTime; + + /** + * Expiry date in UTC. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "exp") + @encode("unixTimestamp", int32) + Expires?: utcDateTime; + + /** + * Creation time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + created?: utcDateTime; + + /** + * Last updated time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + updated?: utcDateTime; +} + +/** + * A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged. + */ +model DeletedCertificateBundle { + ...CertificateBundle; + + /** + * The url of the recovery object, used to identify and recover the deleted certificate. + */ + recoveryId?: string; + + /** + * The time when the certificate is scheduled to be purged, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + scheduledPurgeDate?: utcDateTime; + + /** + * The time when the certificate was deleted, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + deletedDate?: utcDateTime; +} + +/** + * A certificate bundle consists of a certificate (X509) plus its attributes. + */ +model CertificateBundle { + /** + * The certificate id. + */ + @visibility("read") + id?: string; + + /** + * The key id. + */ + @visibility("read") + kid?: string; + + /** + * The secret id. + */ + @visibility("read") + sid?: string; + + /** + * Thumbprint of the certificate. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @visibility("read") + @encodedName("application/json", "x5t") + @encode("base64url") + X509Thumbprint?: bytes; + + /** + * The management policy. + */ + @visibility("read") + policy?: CertificatePolicy; + + /** + * CER contents of x509 certificate. + */ + cer?: bytes; + + /** + * The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', + */ + contentType?: string; + + /** + * The certificate attributes. + */ + attributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs + */ + tags?: Record; +} + +/** + * Management policy for a certificate. + */ +model CertificatePolicy { + /** + * The certificate id. + */ + @visibility("read") + id?: string; + + /** + * Properties of the key backing a certificate. + */ + @encodedName("application/json", "key_props") + keyProperties?: KeyProperties; + + /** + * Properties of the secret backing a certificate. + */ + @encodedName("application/json", "secret_props") + secretProperties?: SecretProperties; + + /** + * Properties of the X509 component of a certificate. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "x509_props") + X509CertificateProperties?: X509CertificateProperties; + + /** + * Actions that will be performed by Key Vault over the lifetime of a certificate. + */ + @encodedName("application/json", "lifetime_actions") + lifetimeActions?: LifetimeAction[]; + + /** + * Parameters for the issuer of the X509 component of a certificate. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "issuer") + IssuerParameters?: IssuerParameters; + + /** + * The certificate attributes. + */ + attributes?: CertificateAttributes; +} + +/** + * Properties of the key pair backing a certificate. + */ +model KeyProperties { + /** + * Indicates if the private key can be exported. Release policy must be provided when creating the first version of an exportable key. + */ + exportable?: boolean; + + /** + * The type of key pair to be used for the certificate. + */ + @encodedName("application/json", "kty") + keyType?: JsonWebKeyType; + + /** + * The key size in bits. For example: 2048, 3072, or 4096 for RSA. + */ + @encodedName("application/json", "key_size") + keySize?: int32; + + /** + * Indicates if the same key pair will be used on certificate renewal. + */ + @encodedName("application/json", "reuse_key") + reuseKey?: boolean; + + /** + * Elliptic curve name. For valid values, see JsonWebKeyCurveName. + */ + @encodedName("application/json", "crv") + curve?: JsonWebKeyCurveName; +} + +/** + * Properties of the key backing a certificate. + */ +model SecretProperties { + /** + * The media type (MIME type). + */ + contentType?: string; +} + +/** + * Properties of the X509 component of a certificate. + */ +model X509CertificateProperties { + /** + * The subject name. Should be a valid X509 distinguished Name. + */ + subject?: string; + + /** + * The enhanced key usage. + */ + ekus?: string[]; + + /** + * The subject alternative names. + */ + @encodedName("application/json", "sans") + subjectAlternativeNames?: SubjectAlternativeNames; + + /** + * Defines how the certificate's key may be used. + */ + @encodedName("application/json", "key_usage") + keyUsage?: KeyUsageType[]; + + /** + * The duration that the certificate is valid in months. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "validity_months") + @minValue(0) + ValidityInMonths?: int32; +} + +/** + * The subject alternate names of a X509 object. + */ +model SubjectAlternativeNames { + /** + * Email addresses. + */ + emails?: string[]; + + /** + * Domain names. + */ + @encodedName("application/json", "dns_names") + dnsNames?: string[]; + + /** + * User principal names. + */ + upns?: string[]; +} + +/** + * Action and its trigger that will be performed by Key Vault over the lifetime of a certificate. + */ +model LifetimeAction { + /** + * The condition that will execute the action. + */ + trigger?: Trigger; + + /** + * The action that will be executed. + */ + action?: Action; +} + +/** + * A condition to be satisfied for an action to be executed. + */ +model Trigger { + /** + * Percentage of lifetime at which to trigger. Value should be between 1 and 99. + */ + @maxValue(99) + @minValue(1) + @encodedName("application/json", "lifetime_percentage") + lifetimePercentage?: int32; + + /** + * Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27). + */ + @encodedName("application/json", "days_before_expiry") + daysBeforeExpiry?: int32; +} + +/** + * The action that will be executed. + */ +model Action { + /** + * The type of the action. + */ + @encodedName("application/json", "action_type") + actionType?: CertificatePolicyAction; +} + +/** + * Parameters for the issuer of the X509 component of a certificate. + */ +model IssuerParameters { + /** + * Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'. + */ + name?: string; + + /** + * Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL' + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "cty") + CertificateType?: string; + + /** + * Indicates if the certificates generated under this policy should be published to certificate transparency logs. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "cert_transparency") + CertificateTransparency?: boolean; +} + +/** + * The contacts for the vault certificates. + */ +model Contacts { + /** + * Identifier for the contacts collection. + */ + @visibility("read") + id?: string; + + /** + * The contact list for the vault certificates. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "contacts") + ContactList?: Contact[]; +} + +/** + * The contact information for the vault certificates. + */ +model Contact { + /** + * Email address. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "email") + EmailAddress?: string; + + /** + * Name. + */ + name?: string; + + /** + * Phone number. + */ + phone?: string; +} + +/** + * The certificate issuer list result. + */ +@pagedResult +model CertificateIssuerListResult { + /** + * A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers. + */ + @items + @visibility("read") + value?: CertificateIssuerItem[]; + + /** + * The URL to get the next set of certificate issuers. + */ + @TypeSpec.nextLink + @visibility("read") + nextLink?: string; +} + +/** + * The certificate issuer item containing certificate issuer metadata. + */ +model CertificateIssuerItem { + /** + * Certificate Identifier. + */ + id?: string; + + /** + * The issuer provider. + */ + provider?: string; +} + +/** + * The certificate issuer set parameters. + */ +model CertificateIssuerSetParameters { + /** + * The issuer provider. + */ + provider: string; + + /** + * The credentials to be used for the issuer. + */ + credentials?: IssuerCredentials; + + /** + * Details of the organization as provided to the issuer. + */ + @encodedName("application/json", "org_details") + organizationDetails?: OrganizationDetails; + + /** + * Attributes of the issuer object. + */ + attributes?: IssuerAttributes; +} + +/** + * The credentials to be used for the certificate issuer. + */ +model IssuerCredentials { + /** + * The user name/account name/account id. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + account_id?: string; + + /** + * The password/secret/account key. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "pwd") + Password?: string; +} + +/** + * Details of the organization of the certificate issuer. + */ +model OrganizationDetails { + /** + * Id of the organization. + */ + id?: string; + + /** + * Details of the organization administrator. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + admin_details?: AdministratorDetails[]; +} + +/** + * Details of the organization administrator of the certificate issuer. + */ +model AdministratorDetails { + /** + * First name. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + first_name?: string; + + /** + * Last name. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + last_name?: string; + + /** + * Email address. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "email") + EmailAddress?: string; + + /** + * Phone number. + */ + phone?: string; +} + +/** + * The attributes of an issuer managed by the Key Vault service. + */ +model IssuerAttributes { + /** + * Determines whether the issuer is enabled. + */ + enabled?: boolean; + + /** + * Creation time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + created?: utcDateTime; + + /** + * Last updated time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + updated?: utcDateTime; +} + +/** + * The issuer for Key Vault certificate. + */ +model IssuerBundle { + /** + * Identifier for the issuer object. + */ + @visibility("read") + id?: string; + + /** + * The issuer provider. + */ + provider?: string; + + /** + * The credentials to be used for the issuer. + */ + credentials?: IssuerCredentials; + + /** + * Details of the organization as provided to the issuer. + */ + @encodedName("application/json", "org_details") + organizationDetails?: OrganizationDetails; + + /** + * Attributes of the issuer object. + */ + attributes?: IssuerAttributes; +} + +/** + * The certificate issuer update parameters. + */ +model CertificateIssuerUpdateParameters { + /** + * The issuer provider. + */ + provider?: string; + + /** + * The credentials to be used for the issuer. + */ + credentials?: IssuerCredentials; + + /** + * Details of the organization as provided to the issuer. + */ + @encodedName("application/json", "org_details") + organizationDetails?: OrganizationDetails; + + /** + * Attributes of the issuer object. + */ + attributes?: IssuerAttributes; +} + +/** + * The certificate create parameters. + */ +model CertificateCreateParameters { + /** + * The management policy for the certificate. + */ + @encodedName("application/json", "policy") + certificatePolicy?: CertificatePolicy; + + /** + * The attributes of the certificate (optional). + */ + @encodedName("application/json", "attributes") + certificateAttributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; +} + +/** + * A certificate operation is returned in case of asynchronous requests. + */ +model CertificateOperation { + /** + * The certificate id. + */ + @visibility("read") + id?: string; + + /** + * Parameters for the issuer of the X509 component of a certificate. + */ + @encodedName("application/json", "issuer") + issuerParameters?: IssuerParameters; + + /** + * The certificate signing request (CSR) that is being used in the certificate operation. + */ + csr?: bytes; + + /** + * Indicates if cancellation was requested on the certificate operation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + cancellation_requested?: boolean; + + /** + * Status of the certificate operation. + */ + status?: string; + + /** + * The status details of the certificate operation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + status_details?: string; + + /** + * Error encountered, if any, during the certificate operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Intentionally nullable model" + error?: Error; + + /** + * Location which contains the result of the certificate operation. + */ + target?: string; + + /** + * Identifier for the certificate operation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + request_id?: string; +} + +/** + * The certificate import parameters. + */ +model CertificateImportParameters { + /** + * Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key. + */ + @encodedName("application/json", "value") + base64EncodedCertificate: string; + + /** + * If the private key in base64EncodedCertificate is encrypted, the password used for encryption. + */ + @encodedName("application/json", "pwd") + password?: string; + + /** + * The management policy for the certificate. + */ + @encodedName("application/json", "policy") + certificatePolicy?: CertificatePolicy; + + /** + * The attributes of the certificate (optional). + */ + @encodedName("application/json", "attributes") + certificateAttributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; +} + +/** + * The certificate update parameters. + */ +model CertificateUpdateParameters { + /** + * The management policy for the certificate. + */ + @encodedName("application/json", "policy") + certificatePolicy?: CertificatePolicy; + + /** + * The attributes of the certificate (optional). + */ + @encodedName("application/json", "attributes") + certificateAttributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; +} + +/** + * The certificate operation update parameters. + */ +model CertificateOperationUpdateParameter { + /** + * Indicates if cancellation was requested on the certificate operation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + cancellation_requested: boolean; +} + +/** + * The certificate merge parameters + */ +model CertificateMergeParameters { + /** + * The certificate or the certificate chain to merge. + */ + @encodedName("application/json", "x5c") + x509Certificates: bytes[]; + + /** + * The attributes of the certificate (optional). + */ + @encodedName("application/json", "attributes") + certificateAttributes?: CertificateAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; +} + +/** + * The backup certificate result, containing the backup blob. + */ +model BackupCertificateResult { + /** + * The backup blob containing the backed up certificate. + */ + @visibility("read") + @encode("base64url") + value?: bytes; +} + +/** + * The certificate restore parameters. + */ +model CertificateRestoreParameters { + /** + * The backup blob associated with a certificate bundle. + */ + @encodedName("application/json", "value") + @encode("base64url") + certificateBundleBackup: bytes; +} + +/** + * A list of certificates that have been deleted in this vault. + */ +@pagedResult +model DeletedCertificateListResult { + /** + * A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates. + */ + @items + @visibility("read") + value?: DeletedCertificateItem[]; + + /** + * The URL to get the next set of deleted certificates. + */ + @TypeSpec.nextLink + @visibility("read") + nextLink?: string; +} + +/** + * The deleted certificate item containing metadata about the deleted certificate. + */ +model DeletedCertificateItem { + ...CertificateItem; + + /** + * The url of the recovery object, used to identify and recover the deleted certificate. + */ + recoveryId?: string; + + /** + * The time when the certificate is scheduled to be purged, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + scheduledPurgeDate?: utcDateTime; + + /** + * The time when the certificate was deleted, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + deletedDate?: utcDateTime; +} + +/** + * The pending certificate signing request result. + */ +model PendingCertificateSigningRequestResult { + /** + * The pending certificate signing request as Base64 encoded string. + */ + @visibility("read") + value?: string; +} diff --git a/specification/keyvault/Security.KeyVault.Certificates/routes.tsp b/specification/keyvault/Security.KeyVault.Certificates/routes.tsp new file mode 100644 index 000000000000..211954736233 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/routes.tsp @@ -0,0 +1,609 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "../Security.KeyVault.Common/common.tsp"; + +using Azure.Core; +using Azure.Core.Traits; +using Azure.ClientGenerator.Core; +using TypeSpec.Rest; +using TypeSpec.Http; + +namespace KeyVault; + +/** + * The GetCertificates operation returns the set of certificates resources in the specified key vault. This operation requires the certificates/list permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("List certificates in a specified key vault") +@route("/certificates") +@get +op getCertificates is KeyVaultOperation< + { + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + + /** + * Specifies whether to include certificates which are not completely provisioned. + */ + @query("includePending") + includePending?: boolean; + }, + CertificateListResult +>; + +/** + * Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot be used to remove individual versions of a certificate object. This operation requires the certificates/delete permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Deletes a certificate from a specified key vault.") +@route("/certificates/{certificate-name}") +@delete +op deleteCertificate is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + DeletedCertificateBundle +>; + +/** + * Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Sets the certificate contacts for the specified key vault.") +@route("/certificates/contacts") +@put +op setCertificateContacts is KeyVaultOperation< + { + /** + * The contacts for the key vault certificate. + */ + @body contacts: Contacts; + }, + Contacts +>; + +/** + * The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Lists the certificate contacts for a specified key vault.") +@route("/certificates/contacts") +@get +op getCertificateContacts is KeyVaultOperation<{}, Contacts>; + +/** + * Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Deletes the certificate contacts for a specified key vault.") +@route("/certificates/contacts") +@delete +op deleteCertificateContacts is KeyVaultOperation<{}, Contacts>; + +/** + * The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("List certificate issuers for a specified key vault.") +@route("/certificates/issuers") +@get +op getCertificateIssuers is KeyVaultOperation< + { + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + }, + CertificateIssuerListResult +>; + +/** + * The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Sets the specified certificate issuer.") +@route("/certificates/issuers/{issuer-name}") +@put +op setCertificateIssuer is KeyVaultOperation< + { + /** + * The name of the issuer. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information. + */ + @path("issuer-name") + issuerName: string; + + /** + * Certificate issuer set parameter. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameter: CertificateIssuerSetParameters; + }, + IssuerBundle +>; + +/** + * The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Updates the specified certificate issuer.") +@route("/certificates/issuers/{issuer-name}") +@patch +op updateCertificateIssuer is KeyVaultOperation< + { + /** + * The name of the issuer. + */ + @path("issuer-name") + issuerName: string; + + /** + * Certificate issuer update parameter. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameter: CertificateIssuerUpdateParameters; + }, + IssuerBundle +>; + +/** + * The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Lists the specified certificate issuer.") +@route("/certificates/issuers/{issuer-name}") +@get +op getCertificateIssuer is KeyVaultOperation< + { + /** + * The name of the issuer. + */ + @path("issuer-name") + issuerName: string; + }, + IssuerBundle +>; + +/** + * The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Deletes the specified certificate issuer.") +@route("/certificates/issuers/{issuer-name}") +@delete +op deleteCertificateIssuer is KeyVaultOperation< + { + /** + * The name of the issuer. + */ + @path("issuer-name") + issuerName: string; + }, + IssuerBundle +>; + +/** + * If this is the first version, the certificate resource is created. This operation requires the certificates/create permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Creates a new certificate.") +@route("/certificates/{certificate-name}/create") +@post +op createCertificate is KeyVaultOperation< + { + /** + * The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information. + */ + @pattern("^[0-9a-zA-Z-]+$") + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The parameters to create a certificate. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: CertificateCreateParameters; + }, + AcceptedResponse & CertificateOperation +>; + +/** + * Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Imports a certificate into a specified key vault.") +@route("/certificates/{certificate-name}/import") +@post +op importCertificate is KeyVaultOperation< + { + /** + * The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information. + */ + @pattern("^[0-9a-zA-Z-]+$") + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The parameters to import the certificate. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: CertificateImportParameters; + }, + CertificateBundle +>; + +/** + * The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("List the versions of a certificate.") +@route("/certificates/{certificate-name}/versions") +@get +op getCertificateVersions is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + }, + CertificateListResult +>; + +/** + * The GetCertificatePolicy operation returns the specified certificate policy resources in the specified key vault. This operation requires the certificates/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Lists the policy for a certificate.") +@route("/certificates/{certificate-name}/policy") +@get +op getCertificatePolicy is KeyVaultOperation< + { + /** + * The name of the certificate in a given key vault. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + CertificatePolicy +>; + +/** + * Set specified members in the certificate policy. Leave others as null. This operation requires the certificates/update permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Updates the policy for a certificate.") +@route("/certificates/{certificate-name}/policy") +@patch +op updateCertificatePolicy is KeyVaultOperation< + { + /** + * The name of the certificate in the given vault. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The policy for the certificate. + */ + @body certificatePolicy: CertificatePolicy; + }, + CertificatePolicy +>; + +/** + * The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Updates the specified attributes associated with the given certificate.") +@route("/certificates/{certificate-name}/{certificate-version}") +@patch +op updateCertificate is KeyVaultOperation< + { + /** + * The name of the certificate in the given key vault. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The version of the certificate. + */ + @path("certificate-version") + @clientName("version", "go") + certificateVersion: string; + + /** + * The parameters for certificate update. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: CertificateUpdateParameters; + }, + CertificateBundle +>; + +/** + * Gets information about a specific certificate. This operation requires the certificates/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Gets information about a certificate.") +@route("/certificates/{certificate-name}/{certificate-version}") +@get +op getCertificate is KeyVaultOperation< + { + /** + * The name of the certificate in the given vault. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned. + */ + @path("certificate-version") + @clientName("version", "go") + certificateVersion: string; + }, + CertificateBundle +>; + +/** + * Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@parameterVisibility +@summary("Updates a certificate operation.") +@route("/certificates/{certificate-name}/pending") +@patch +op updateCertificateOperation is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The certificate operation response. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + certificateOperation: CertificateOperationUpdateParameter; + }, + CertificateOperation +>; + +/** + * Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Gets the creation operation of a certificate.") +@route("/certificates/{certificate-name}/pending") +@get +op getCertificateOperation is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + CertificateOperation +>; + +/** + * Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Deletes the creation operation for a specific certificate.") +@route("/certificates/{certificate-name}/pending") +@delete +op deleteCertificateOperation is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + CertificateOperation +>; + +/** + * The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Merges a certificate or a certificate chain with a key pair existing on the server.") +@route("/certificates/{certificate-name}/pending/merge") +@post +op mergeCertificate is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + + /** + * The parameters to merge certificate. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: CertificateMergeParameters; + }, + CreatedResponse & CertificateBundle +>; + +/** + * Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Backs up the specified certificate.") +@route("/certificates/{certificate-name}/backup") +@post +op backupCertificate is KeyVaultOperation< + { + /** + * The name of the certificate. + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + BackupCertificateResult +>; + +/** + * Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Restores a backed up certificate to a vault.") +@route("/certificates/restore") +@post +op restoreCertificate is KeyVaultOperation< + { + /** + * The parameters to restore the certificate. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: CertificateRestoreParameters; + }, + CertificateBundle +>; + +/** + * The GetDeletedCertificates operation retrieves the certificates in the current vault which are in a deleted state and ready for recovery or purging. This operation includes deletion-specific information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete enabled vaults. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Lists the deleted certificates in the specified vault currently available for recovery.") +@route("/deletedcertificates") +@get +op getDeletedCertificates is KeyVaultOperation< + { + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + + /** + * Specifies whether to include certificates which are not completely provisioned. + */ + @query("includePending") + includePending?: boolean; + }, + DeletedCertificateListResult +>; + +/** + * The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, such as retention interval, scheduled permanent deletion and the current deletion recovery level. This operation requires the certificates/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Retrieves information about the specified deleted certificate.") +@route("/deletedcertificates/{certificate-name}") +@get +op getDeletedCertificate is KeyVaultOperation< + { + /** + * The name of the certificate + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + DeletedCertificateBundle +>; + +/** + * The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for recovery. The operation is not available if the recovery level does not specify 'Purgeable'. This operation requires the certificate/purge permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Permanently deletes the specified deleted certificate.") +@route("/deletedcertificates/{certificate-name}") +@delete +op purgeDeletedCertificate is KeyVaultOperation< + { + /** + * The name of the certificate + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + void +>; + +/** + * The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval (available in the deleted certificate's attributes). This operation requires the certificates/recover permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Recovers the deleted certificate back to its current version under /certificates.") +@route("/deletedcertificates/{certificate-name}/recover") +@post +op recoverDeletedCertificate is KeyVaultOperation< + { + /** + * The name of the deleted certificate + */ + @path("certificate-name") + @clientName("name", "go") + certificateName: string; + }, + CertificateBundle +>; diff --git a/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml new file mode 100644 index 000000000000..000cc439daf1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml @@ -0,0 +1,63 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.Common/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/certificates.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + "@azure-tools/typespec-python": + flavor: azure + "basic-setup-py": true + "package-version": "4.9.0b1" + "package-dir": "azure-keyvault-certificates" + "package-name": "azure-keyvault-certificates" + "output-path": "." + "@azure-tools/typespec-java": + flavor: azure + "package-dir": "azure-security-keyvault-certificates" + "namespace": "com.azure.security.keyvault.certificates" + "models-subpackage": "implementation.models" + "custom-types": "AdministratorContact,CertificateContact,CertificateKeyCurveName,CertificateKeyType,CertificateKeyUsage,CertificateOperationError,SubjectAlternativeNames" + "custom-types-subpackage": "models" + "customization-class": "swagger/src/main/java/CertificatesCustomizations.java" + "partial-update": true + "generate-tests": false + "generate-samples": false + "include-api-view-properties": false + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + # "@azure-tools/typespec-csharp": true + "@azure-tools/typespec-ts": + package-dir: "keyvault-certificates" + generateMetadata: true + generateTest: false + src-folder: "src/generated" + experimentalExtensibleEnums: true + isModularLibrary: true + packageDetails: + name: "@azure/keyvault-certificates" + description: "Azure Key Vault Certificates" + flavor: azure + "@azure-tools/typespec-go": + service-dir: "sdk/security/keyvault" + package-dir: "azcertificates" + module: "github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates" + module-version: "0.0.1" + emitter-output-dir: "{project-root}" + override-client-name: "Client" + single-client: true + api-version: "7.5" + inject-spans: true diff --git a/specification/keyvault/cspell.yaml b/specification/keyvault/cspell.yaml index 51e828136df3..f2c96666b384 100644 --- a/specification/keyvault/cspell.yaml +++ b/specification/keyvault/cspell.yaml @@ -9,8 +9,10 @@ import: words: - assetid - azadmin + - backuprestore - byok - deletesas + - Diffie - ekus - getsas - listsas @@ -22,27 +24,30 @@ words: - secg - secp - setsas + - subpackage - upns overrides: - filename: '**/specification/keyvault/data-plane/Microsoft.KeyVault/**/keyvault.json' words: - regenerte + - filename: '**/specification/keyvault/data-plane/readme.md' + words: + - somefile - filename: '**/specification/keyvault/resource-manager/readme.go.md' words: - modelerfour - filename: '**/specification/keyvault/Security.KeyVault.Administration/README.md' words: - - backuprestore - renamings - subservice - subservices - tspconfig - - filename: '**/specification/keyvault/Security.KeyVault.Administration/tspconfig.yaml' - words: - - subpackage - filename: '**/specification/keyvault/Security.KeyVault.BackupRestore/tspconfig.yaml' words: - backuprestore + - filename: '**/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml' + words: + - azcertificates - filename: '**/specification/keyvault/data-plane/Microsoft.KeyVault/**/storage.json' words: - regenerte diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/certificates.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/certificates.json index 1819158af983..140201e63871 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/certificates.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/certificates.json @@ -2,116 +2,136 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.6-preview.1", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.6-preview.1" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { "/certificates": { "get": { - "tags": [ - "Certificates" - ], "operationId": "GetCertificates", "summary": "List certificates in a specified key vault", "description": "The GetCertificates operation returns the set of certificates resources in the specified key vault. This operation requires the certificates/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "maximum": 25 }, { "name": "includePending", "in": "query", + "description": "Specifies whether to include certificates which are not completely provisioned.", "required": false, - "type": "boolean", - "description": "Specifies whether to include certificates which are not completely provisioned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "boolean" } ], "responses": { "200": { - "description": "A response message containing a list of certificates along with a link to the next page of certificates.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetCertificates": { "$ref": "./examples/GetCertificates-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/certificates/{certificate-name}": { "delete": { - "tags": [ - "Certificates" - ], "operationId": "DeleteCertificate", "summary": "Deletes a certificate from a specified key vault.", "description": "Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot be used to remove individual versions of a certificate object. This operation requires the certificates/delete permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The deleted certificate.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -122,527 +142,443 @@ } } }, - "/certificates/contacts": { - "put": { - "tags": [ - "Certificates" - ], - "operationId": "SetCertificateContacts", - "description": "Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission.", - "summary": "Sets the certificate contacts for the specified key vault.", + "/certificates/{certificate-name}/{certificate-version}": { + "get": { + "operationId": "GetCertificate", + "summary": "Gets information about a certificate.", + "description": "Gets information about a specific certificate. This operation requires the certificates/get permission.", "parameters": [ { - "name": "contacts", - "in": "body", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate in the given vault.", "required": true, - "schema": { - "$ref": "#/definitions/Contacts" - }, - "description": "The contacts for the key vault certificate." + "type": "string", + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificate-version", + "in": "path", + "description": "The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateVersion" } ], "responses": { "200": { - "description": "The contacts for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Contacts" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetCertificateContacts": { - "$ref": "./examples/SetCertificateContacts-example.json" + "GetCertificate": { + "$ref": "./examples/GetCertificate-example.json" } } }, - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateContacts", - "summary": "Lists the certificate contacts for a specified key vault.", - "description": "The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission.", + "patch": { + "operationId": "UpdateCertificate", + "summary": "Updates the specified attributes associated with the given certificate.", + "description": "The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission.", "parameters": [ { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The contacts for the key vault certificate.", - "schema": { - "$ref": "#/definitions/Contacts" - } + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "default": { - "description": "Key Vault error response describing why the operation failed.", + { + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate in the given key vault.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateName" + }, + { + "name": "certificate-version", + "in": "path", + "description": "The version of the certificate.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateVersion" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters for certificate update.", + "required": true, "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/CertificateUpdateParameters" } } - }, - "x-ms-examples": { - "GetCertificateContacts": { - "$ref": "./examples/GetCertificateContacts-example.json" - } - } - }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateContacts", - "description": "Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission.", - "summary": "Deletes the certificate contacts for a specified key vault.", - "parameters": [ - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } ], "responses": { "200": { - "description": "The contacts for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Contacts" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateContacts": { - "$ref": "./examples/DeleteCertificateContacts-example.json" + "UpdateCertificate": { + "$ref": "./examples/UpdateCertificate-example.json" } } } }, - "/certificates/issuers": { - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateIssuers", - "summary": "List certificate issuers for a specified key vault.", - "description": "The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "/certificates/{certificate-name}/backup": { + "post": { + "operationId": "BackupCertificate", + "summary": "Backs up the specified certificate.", + "description": "Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission.", "parameters": [ { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A response message containing a list of certificate issuers in a key vault along with a link to the next page of certificate issuers.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateIssuerListResult" + "$ref": "#/definitions/BackupCertificateResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetCertificateIssuers": { - "$ref": "./examples/GetCertificateIssuers-example.json" + "BackupCertificate": { + "$ref": "./examples/BackupCertificate-example.json" } } } }, - "/certificates/issuers/{issuer-name}": { - "put": { - "tags": [ - "Certificates" - ], - "operationId": "SetCertificateIssuer", - "summary": "Sets the specified certificate issuer.", - "description": "The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission.", + "/certificates/{certificate-name}/create": { + "post": { + "operationId": "CreateCertificate", + "summary": "Creates a new certificate.", + "description": "If this is the first version, the certificate resource is created. This operation requires the certificates/create permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the issuer. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "certificateName" }, { - "name": "parameter", + "name": "parameters", "in": "body", + "description": "The parameters to create a certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateIssuerSetParameters" - }, - "description": "Certificate issuer set parameter." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateCreateParameters" + } } ], "responses": { - "200": { - "description": "The issuer for the key vault certificate.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetCertificateIssuer": { - "$ref": "./examples/SetCertificateIssuer-example.json" + "CreateCertificate": { + "$ref": "./examples/CreateCertificate-example.json" } } - }, - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificateIssuer", - "summary": "Updates the specified certificate issuer.", - "description": "The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission.", + } + }, + "/certificates/{certificate-name}/import": { + "post": { + "operationId": "ImportCertificate", + "summary": "Imports a certificate into a specified key vault.", + "description": "Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the issuer." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "certificateName" }, { - "name": "parameter", + "name": "parameters", "in": "body", + "description": "The parameters to import the certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateIssuerUpdateParameters" - }, - "description": "Certificate issuer update parameter." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateImportParameters" + } } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificateIssuer": { - "$ref": "./examples/UpdateCertificateIssuer-example.json" + "ImportCertificate": { + "$ref": "./examples/ImportCertificate-example.json" } } - }, + } + }, + "/certificates/{certificate-name}/pending": { "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateIssuer", - "summary": "Lists the specified certificate issuer.", - "description": "The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "operationId": "GetCertificateOperation", + "summary": "Gets the creation operation of a certificate.", + "description": "Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the issuer." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificateIssuer": { - "$ref": "./examples/GetCertificateIssuer-example.json" + "GetCertificateOperation": { + "$ref": "./examples/GetCertificateOperation-example.json" } } }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateIssuer", - "summary": "Deletes the specified certificate issuer.", - "description": "The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission.", + "patch": { + "operationId": "UpdateCertificateOperation", + "summary": "Updates a certificate operation.", + "description": "Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the issuer." + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificateOperation", + "in": "body", + "description": "The certificate operation response.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateOperationUpdateParameter" + } } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateIssuer": { - "$ref": "./examples/DeleteCertificateIssuer-example.json" + "UpdateCertificateOperation": { + "$ref": "./examples/UpdateCertificateOperation-example.json" } } - } - }, - "/certificates/{certificate-name}/create": { - "post": { - "tags": [ - "Certificates" - ], - "operationId": "CreateCertificate", - "summary": "Creates a new certificate.", - "description": "If this is the first version, the certificate resource is created. This operation requires the certificates/create permission.", + }, + "delete": { + "operationId": "DeleteCertificateOperation", + "summary": "Deletes the creation operation for a specific certificate.", + "description": "Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/CertificateCreateParameters" - }, - "description": "The parameters to create a certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { - "202": { - "description": "Created certificate bundle.", + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "CreateCertificate": { - "$ref": "./examples/CreateCertificate-example.json" + "DeleteCertificateOperation": { + "$ref": "./examples/DeleteCertificateOperation-example.json" } } } }, - "/certificates/{certificate-name}/import": { + "/certificates/{certificate-name}/pending/merge": { "post": { - "tags": [ - "Certificates" - ], - "operationId": "ImportCertificate", - "summary": "Imports a certificate into a specified key vault.", - "description": "Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format.", + "operationId": "MergeCertificate", + "summary": "Merges a certificate or a certificate chain with a key pair existing on the server.", + "description": "The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + "x-ms-client-name": "certificateName" }, { "name": "parameters", "in": "body", + "description": "The parameters to merge certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateImportParameters" - }, - "description": "The parameters to import the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Imported certificate bundle to the vault.", - "schema": { - "$ref": "#/definitions/CertificateBundle" - } - }, - "default": { - "description": "Key Vault error response describing why the operation failed.", - "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/CertificateMergeParameters" } } - }, - "x-ms-examples": { - "ImportCertificate": { - "$ref": "./examples/ImportCertificate-example.json" - } - } - } - }, - "/certificates/{certificate-name}/versions": { - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateVersions", - "summary": "List the versions of a certificate.", - "description": "The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.", - "parameters": [ - { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." - }, - { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } ], "responses": { - "200": { - "description": "A response message containing a list of certificates in the key vault along with a link to the next page of keys.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/CertificateListResult" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetCertificateVersions": { - "$ref": "./examples/GetCertificateVersions-example.json" + "MergeCertificate": { + "$ref": "./examples/MergeCertificate-example.json" } } } }, "/certificates/{certificate-name}/policy": { "get": { - "tags": [ - "Certificates" - ], "operationId": "GetCertificatePolicy", "summary": "Lists the policy for a certificate.", "description": "The GetCertificatePolicy operation returns the specified certificate policy resources in the specified key vault. This operation requires the certificates/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate in a given key vault.", "required": true, "type": "string", - "description": "The name of the certificate in a given key vault." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The certificate policy.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificatePolicy" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -653,44 +589,42 @@ } }, "patch": { - "tags": [ - "Certificates" - ], "operationId": "UpdateCertificatePolicy", "summary": "Updates the policy for a certificate.", "description": "Set specified members in the certificate policy. Leave others as null. This operation requires the certificates/update permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate in the given vault.", "required": true, "type": "string", - "description": "The name of the certificate in the given vault." + "x-ms-client-name": "certificateName" }, { "name": "certificatePolicy", "in": "body", + "description": "The policy for the certificate.", "required": true, "schema": { "$ref": "#/definitions/CertificatePolicy" - }, - "description": "The policy for the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "The certificate policy", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificatePolicy" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -701,365 +635,398 @@ } } }, - "/certificates/{certificate-name}/{certificate-version}": { - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificate", - "summary": "Updates the specified attributes associated with the given certificate.", - "description": "The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission.", + "/certificates/{certificate-name}/versions": { + "get": { + "operationId": "GetCertificateVersions", + "summary": "List the versions of a certificate.", + "description": "The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate in the given key vault." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "certificate-version", + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The version of the certificate." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/CertificateUpdateParameters" - }, - "description": "The parameters for certificate update." + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "The updated certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/CertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificate": { - "$ref": "./examples/UpdateCertificate-example.json" + "GetCertificateVersions": { + "$ref": "./examples/GetCertificateVersions-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, + } + }, + "/certificates/contacts": { "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificate", - "summary": "Gets information about a certificate.", - "description": "Gets information about a specific certificate. This operation requires the certificates/get permission.", + "operationId": "GetCertificateContacts", + "summary": "Lists the certificate contacts for a specified key vault.", + "description": "The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate in the given vault." - }, - { - "name": "certificate-version", - "in": "path", - "required": true, - "type": "string", - "description": "The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "The retrieved certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificate": { - "$ref": "./examples/GetCertificate-example.json" + "GetCertificateContacts": { + "$ref": "./examples/GetCertificateContacts-example.json" } } - } - }, - "/certificates/{certificate-name}/pending": { - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificateOperation", - "summary": "Updates a certificate operation.", - "description": "Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission.", + }, + "put": { + "operationId": "SetCertificateContacts", + "summary": "Sets the certificate contacts for the specified key vault.", + "description": "Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "certificateOperation", + "name": "contacts", "in": "body", + "description": "The contacts for the key vault certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateOperationUpdateParameter" - }, - "description": "The certificate operation response." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/Contacts" + } } ], "responses": { "200": { - "description": "A message containing the certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificateOperation": { - "$ref": "./examples/UpdateCertificateOperation-example.json" + "SetCertificateContacts": { + "$ref": "./examples/SetCertificateContacts-example.json" } } }, - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateOperation", - "summary": "Gets the creation operation of a certificate.", - "description": "Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission.", + "delete": { + "operationId": "DeleteCertificateContacts", + "summary": "Deletes the certificate contacts for a specified key vault.", + "description": "Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "The certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificateOperation": { - "$ref": "./examples/GetCertificateOperation-example.json" + "DeleteCertificateContacts": { + "$ref": "./examples/DeleteCertificateContacts-example.json" } } - }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateOperation", - "summary": "Deletes the creation operation for a specific certificate.", - "description": "Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission.", + } + }, + "/certificates/issuers": { + "get": { + "operationId": "GetCertificateIssuers", + "summary": "List certificate issuers for a specified key vault.", + "description": "The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 + } + ], + "responses": { "200": { - "description": "A message containing the certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/CertificateIssuerListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateOperation": { - "$ref": "./examples/DeleteCertificateOperation-example.json" + "GetCertificateIssuers": { + "$ref": "./examples/GetCertificateIssuers-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/certificates/{certificate-name}/pending/merge": { - "post": { - "tags": [ - "Certificates" + "/certificates/issuers/{issuer-name}": { + "get": { + "operationId": "GetCertificateIssuer", + "summary": "Lists the specified certificate issuer.", + "description": "The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", + "in": "path", + "description": "The name of the issuer.", + "required": true, + "type": "string", + "x-ms-client-name": "issuerName" + } ], - "operationId": "MergeCertificate", - "summary": "Merges a certificate or a certificate chain with a key pair existing on the server.", - "description": "The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.", + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/IssuerBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "GetCertificateIssuer": { + "$ref": "./examples/GetCertificateIssuer-example.json" + } + } + }, + "put": { + "operationId": "SetCertificateIssuer", + "summary": "Sets the specified certificate issuer.", + "description": "The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission.", "parameters": [ { - "name": "certificate-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", "in": "path", + "description": "The name of the issuer. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the certificate." + "x-ms-client-name": "issuerName" }, { - "name": "parameters", + "name": "parameter", "in": "body", + "description": "Certificate issuer set parameter.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateMergeParameters" - }, - "description": "The parameters to merge certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateIssuerSetParameters" + } } ], "responses": { - "201": { - "description": "Merged certificate bundle to the vault.", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/IssuerBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "MergeCertificate": { - "$ref": "./examples/MergeCertificate-example.json" + "SetCertificateIssuer": { + "$ref": "./examples/SetCertificateIssuer-example.json" } } - } - }, - "/certificates/{certificate-name}/backup": { - "post": { - "tags": [ - "Certificates" - ], - "operationId": "BackupCertificate", - "summary": "Backs up the specified certificate.", - "description": "Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission.", + }, + "patch": { + "operationId": "UpdateCertificateIssuer", + "summary": "Updates the specified certificate issuer.", + "description": "The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission.", "parameters": [ { - "name": "certificate-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", "in": "path", + "description": "The name of the issuer.", "required": true, "type": "string", - "description": "The name of the certificate." + "x-ms-client-name": "issuerName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "parameter", + "in": "body", + "description": "Certificate issuer update parameter.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateIssuerUpdateParameters" + } } ], "responses": { "200": { - "description": "The backup blob containing the backed up certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BackupCertificateResult" + "$ref": "#/definitions/IssuerBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "BackupCertificate": { - "$ref": "./examples/BackupCertificate-example.json" + "UpdateCertificateIssuer": { + "$ref": "./examples/UpdateCertificateIssuer-example.json" + } + } + }, + "delete": { + "operationId": "DeleteCertificateIssuer", + "summary": "Deletes the specified certificate issuer.", + "description": "The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", + "in": "path", + "description": "The name of the issuer.", + "required": true, + "type": "string", + "x-ms-client-name": "issuerName" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/IssuerBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "DeleteCertificateIssuer": { + "$ref": "./examples/DeleteCertificateIssuer-example.json" } } } }, "/certificates/restore": { "post": { - "tags": [ - "Certificates" - ], "operationId": "RestoreCertificate", "summary": "Restores a backed up certificate to a vault.", "description": "Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "parameters", "in": "body", + "description": "The parameters to restore the certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { "$ref": "#/definitions/CertificateRestoreParameters" - }, - "description": "The parameters to restore the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "Restored certificate bundle in the vault.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1072,89 +1039,84 @@ }, "/deletedcertificates": { "get": { - "tags": [ - "DeletedCertificates" - ], "operationId": "GetDeletedCertificates", "summary": "Lists the deleted certificates in the specified vault currently available for recovery.", "description": "The GetDeletedCertificates operation retrieves the certificates in the current vault which are in a deleted state and ready for recovery or purging. This operation includes deletion-specific information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete enabled vaults.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "maximum": 25 }, { "name": "includePending", "in": "query", + "description": "Specifies whether to include certificates which are not completely provisioned.", "required": false, - "type": "boolean", - "description": "Specifies whether to include certificates which are not completely provisioned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "boolean" } ], "responses": { "200": { - "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetDeletedCertificates": { "$ref": "./examples/GetDeletedCertificates-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/deletedcertificates/{certificate-name}": { "get": { - "tags": [ - "DeletedCertificates" - ], "operationId": "GetDeletedCertificate", "summary": "Retrieves information about the specified deleted certificate.", "description": "The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, such as retention interval, scheduled permanent deletion and the current deletion recovery level. This operation requires the certificates/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate", "required": true, "type": "string", - "description": "The name of the certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A Certificate bundle of the certificate and its attributes", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1165,32 +1127,30 @@ } }, "delete": { - "tags": [ - "DeletedCertificates" - ], "operationId": "PurgeDeletedCertificate", "summary": "Permanently deletes the specified deleted certificate.", "description": "The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for recovery. The operation is not available if the recovery level does not specify 'Purgeable'. This operation requires the certificate/purge permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate", "required": true, "type": "string", - "description": "The name of the certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "204": { - "description": "No content signaling that the certificate was purged forever." + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1203,35 +1163,33 @@ }, "/deletedcertificates/{certificate-name}/recover": { "post": { - "tags": [ - "DeletedCertificates" - ], "operationId": "RecoverDeletedCertificate", "summary": "Recovers the deleted certificate back to its current version under /certificates.", "description": "The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval (available in the deleted certificate's attributes). This operation requires the certificates/recover permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the deleted certificate", "required": true, "type": "string", - "description": "The name of the deleted certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A Certificate bundle of the original certificate and its attributes", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1244,133 +1202,156 @@ } }, "definitions": { - "CertificateAttributes": { - "allOf": [ - { - "$ref": "common.json#/definitions/Attributes" - } - ], + "Action": { + "type": "object", + "description": "The action that will be executed.", "properties": { - "recoverableDays": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0." - }, - "recoveryLevel": { - "type": "string", - "description": "Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval.", - "enum": [ - "Purgeable", - "Recoverable+Purgeable", - "Recoverable", - "Recoverable+ProtectedSubscription", - "CustomizedRecoverable+Purgeable", - "CustomizedRecoverable", - "CustomizedRecoverable+ProtectedSubscription" - ], - "x-ms-enum": { - "name": "DeletionRecoveryLevel", - "modelAsString": true, - "values": [ - { - "value": "Purgeable", - "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" - }, - { - "value": "Recoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "CustomizedRecoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." - }, - { - "value": "CustomizedRecoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." - }, - { - "value": "CustomizedRecoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." - } - ] - }, - "readOnly": true, - "x-nullable": false + "action_type": { + "$ref": "#/definitions/CertificatePolicyAction", + "description": "The type of the action.", + "x-ms-client-name": "actionType" } - }, - "description": "The certificate management attributes." + } }, - "CertificateItem": { + "AdministratorDetails": { + "type": "object", + "description": "Details of the organization administrator of the certificate issuer.", "properties": { - "id": { + "first_name": { "type": "string", - "description": "Certificate identifier." - }, - "attributes": { - "$ref": "#/definitions/CertificateAttributes", - "description": "The certificate management attributes." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + "description": "First name." }, - "x5t": { - "x-ms-client-name": "X509Thumbprint", + "last_name": { "type": "string", - "format": "base64url", - "description": "Thumbprint of the certificate." - } - }, - "description": "The certificate item containing certificate metadata." - }, - "CertificateIssuerItem": { - "properties": { - "id": { + "description": "Last name." + }, + "email": { "type": "string", - "description": "Certificate Identifier." + "description": "Email address.", + "x-ms-client-name": "EmailAddress" }, - "provider": { + "phone": { "type": "string", - "description": "The issuer provider." + "description": "Phone number." } - }, - "description": "The certificate issuer item containing certificate issuer metadata." + } }, - "CertificateBundle": { + "Attributes": { + "type": "object", + "description": "The object attributes managed by the KeyVault service.", "properties": { - "id": { - "type": "string", - "description": "The certificate id.", - "readOnly": true + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." }, - "kid": { - "type": "string", - "description": "The key id.", - "readOnly": true + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" }, - "sid": { - "type": "string", - "description": "The secret id.", + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", "readOnly": true }, - "x5t": { - "x-ms-client-name": "X509Thumbprint", + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + } + } + }, + "BackupCertificateResult": { + "type": "object", + "description": "The backup certificate result, containing the backup blob.", + "properties": { + "value": { "type": "string", "format": "base64url", - "description": "Thumbprint of the certificate.", + "description": "The backup blob containing the backed up certificate.", "readOnly": true + } + } + }, + "CertificateAttributes": { + "type": "object", + "description": "The certificate management attributes.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + }, + "recoverableDays": { + "type": "integer", + "format": "int32", + "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0.", + "readOnly": true + }, + "recoveryLevel": { + "$ref": "#/definitions/DeletionRecoveryLevel", + "description": "Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval.", + "readOnly": true + } + } + }, + "CertificateBundle": { + "type": "object", + "description": "A certificate bundle consists of a certificate (X509) plus its attributes.", + "properties": { + "id": { + "type": "string", + "description": "The certificate id.", + "readOnly": true + }, + "kid": { + "type": "string", + "description": "The key id.", + "readOnly": true + }, + "sid": { + "type": "string", + "description": "The secret id.", + "readOnly": true + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "readOnly": true, + "x-ms-client-name": "X509Thumbprint" }, "policy": { "$ref": "#/definitions/CertificatePolicy", @@ -1384,7 +1365,7 @@ }, "contentType": { "type": "string", - "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', " + "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12'," }, "attributes": { "$ref": "#/definitions/CertificateAttributes", @@ -1392,67 +1373,232 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs" + } + } + } + }, + "CertificateCreateParameters": { + "type": "object", + "description": "The certificate create parameters.", + "properties": { + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "CertificateImportParameters": { + "type": "object", + "description": "The certificate import parameters.", + "properties": { + "value": { + "type": "string", + "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key.", + "x-ms-client-name": "base64EncodedCertificate" + }, + "pwd": { + "type": "string", + "description": "If the private key in base64EncodedCertificate is encrypted, the password used for encryption.", + "x-ms-client-name": "password" + }, + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } } }, - "description": "A certificate bundle consists of a certificate (X509) plus its attributes." + "required": [ + "value" + ] }, - "DeletedCertificateBundle": { - "allOf": [ - { - "$ref": "#/definitions/CertificateBundle" + "CertificateIssuerItem": { + "type": "object", + "description": "The certificate issuer item containing certificate issuer metadata.", + "properties": { + "id": { + "type": "string", + "description": "Certificate Identifier." + }, + "provider": { + "type": "string", + "description": "The issuer provider." } - ], + } + }, + "CertificateIssuerListResult": { + "type": "object", + "description": "The certificate issuer list result.", "properties": { - "recoveryId": { + "value": { + "type": "array", + "description": "A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers.", + "items": { + "$ref": "#/definitions/CertificateIssuerItem" + }, + "readOnly": true + }, + "nextLink": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted certificate." + "description": "The URL to get the next set of certificate issuers.", + "readOnly": true + } + } + }, + "CertificateIssuerSetParameters": { + "type": "object", + "description": "The certificate issuer set parameters.", + "properties": { + "provider": { + "type": "string", + "description": "The issuer provider." }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate is scheduled to be purged, in UTC" + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." }, - "deletedDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate was deleted, in UTC" + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" + }, + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } }, - "description": "A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged." + "required": [ + "provider" + ] }, - "DeletedCertificateItem": { - "allOf": [ - { - "$ref": "#/definitions/CertificateItem" + "CertificateIssuerUpdateParameters": { + "type": "object", + "description": "The certificate issuer update parameters.", + "properties": { + "provider": { + "type": "string", + "description": "The issuer provider." + }, + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." + }, + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" + }, + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } - ], + } + }, + "CertificateItem": { + "type": "object", + "description": "The certificate item containing certificate metadata.", "properties": { - "recoveryId": { + "id": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted certificate." + "description": "Certificate identifier." }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate is scheduled to be purged, in UTC" + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate management attributes." }, - "deletedDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate was deleted, in UTC" + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "x-ms-client-name": "X509Thumbprint" + } + } + }, + "CertificateListResult": { + "type": "object", + "description": "The certificate list result.", + "properties": { + "value": { + "type": "array", + "description": "A response message containing a list of certificates in the key vault along with a link to the next page of certificates.", + "items": { + "$ref": "#/definitions/CertificateItem" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of certificates.", + "readOnly": true + } + } + }, + "CertificateMergeParameters": { + "type": "object", + "description": "The certificate merge parameters", + "properties": { + "x5c": { + "type": "array", + "description": "The certificate or the certificate chain to merge.", + "items": { + "type": "string", + "format": "byte" + }, + "x-ms-client-name": "x509Certificates" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } } }, - "description": "The deleted certificate item containing metadata about the deleted certificate." + "required": [ + "x5c" + ] }, "CertificateOperation": { + "type": "object", + "description": "A certificate operation is returned in case of asynchronous requests.", "properties": { "id": { "type": "string", @@ -1460,9 +1606,9 @@ "readOnly": true }, "issuer": { - "x-ms-client-name": "IssuerParameters", "$ref": "#/definitions/IssuerParameters", - "description": "Parameters for the issuer of the X509 component of a certificate." + "description": "Parameters for the issuer of the X509 component of a certificate.", + "x-ms-client-name": "issuerParameters" }, "csr": { "type": "string", @@ -1482,7 +1628,7 @@ "description": "The status details of the certificate operation." }, "error": { - "$ref": "common.json#/definitions/Error", + "$ref": "#/definitions/Error", "description": "Error encountered, if any, during the certificate operation." }, "target": { @@ -1493,10 +1639,24 @@ "type": "string", "description": "Identifier for the certificate operation." } + } + }, + "CertificateOperationUpdateParameter": { + "type": "object", + "description": "The certificate operation update parameters.", + "properties": { + "cancellation_requested": { + "type": "boolean", + "description": "Indicates if cancellation was requested on the certificate operation." + } }, - "description": "A certificate operation is returned in case of asynchronous requests." + "required": [ + "cancellation_requested" + ] }, "CertificatePolicy": { + "type": "object", + "description": "Management policy for a certificate.", "properties": { "id": { "type": "string", @@ -1504,209 +1664,351 @@ "readOnly": true }, "key_props": { - "x-ms-client-name": "KeyProperties", - "$ref": "keys.json#/definitions/KeyProperties", - "description": "Properties of the key backing a certificate." + "$ref": "#/definitions/KeyProperties", + "description": "Properties of the key backing a certificate.", + "x-ms-client-name": "keyProperties" }, "secret_props": { - "x-ms-client-name": "SecretProperties", - "$ref": "secrets.json#/definitions/SecretProperties", - "description": "Properties of the secret backing a certificate." + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret backing a certificate.", + "x-ms-client-name": "secretProperties" }, "x509_props": { - "x-ms-client-name": "X509CertificateProperties", "$ref": "#/definitions/X509CertificateProperties", - "description": "Properties of the X509 component of a certificate." + "description": "Properties of the X509 component of a certificate.", + "x-ms-client-name": "X509CertificateProperties" }, "lifetime_actions": { "type": "array", + "description": "Actions that will be performed by Key Vault over the lifetime of a certificate.", "items": { "$ref": "#/definitions/LifetimeAction" }, - "description": "Actions that will be performed by Key Vault over the lifetime of a certificate." + "x-ms-client-name": "lifetimeActions", + "x-ms-identifiers": [] }, "issuer": { - "x-ms-client-name": "IssuerParameters", "$ref": "#/definitions/IssuerParameters", - "description": "Parameters for the issuer of the X509 component of a certificate." + "description": "Parameters for the issuer of the X509 component of a certificate.", + "x-ms-client-name": "IssuerParameters" }, "attributes": { "$ref": "#/definitions/CertificateAttributes", "description": "The certificate attributes." } - }, - "description": "Management policy for a certificate." + } }, - "X509CertificateProperties": { - "properties": { - "subject": { - "type": "string", - "description": "The subject name. Should be a valid X509 distinguished Name." - }, - "ekus": { - "type": "array", - "items": { - "type": "string" + "CertificatePolicyAction": { + "type": "string", + "description": "The type of the action.", + "enum": [ + "EmailContacts", + "AutoRenew" + ], + "x-ms-enum": { + "name": "CertificatePolicyAction", + "modelAsString": false, + "values": [ + { + "name": "EmailContacts", + "value": "EmailContacts", + "description": "A certificate policy that will email certificate contacts." }, - "description": "The enhanced key usage." + { + "name": "AutoRenew", + "value": "AutoRenew", + "description": "A certificate policy that will auto-renew a certificate." + } + ] + } + }, + "CertificateRestoreParameters": { + "type": "object", + "description": "The certificate restore parameters.", + "properties": { + "value": { + "type": "string", + "format": "base64url", + "description": "The backup blob associated with a certificate bundle.", + "x-ms-client-name": "certificateBundleBackup" + } + }, + "required": [ + "value" + ] + }, + "CertificateUpdateParameters": { + "type": "object", + "description": "The certificate update parameters.", + "properties": { + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" }, - "sans": { - "x-ms-client-name": "SubjectAlternativeNames", - "$ref": "#/definitions/SubjectAlternativeNames", - "description": "The subject alternative names." + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" }, - "key_usage": { - "type": "array", - "description": "Defines how the certificate's key may be used.", - "items": { - "type": "string", - "enum": [ - "digitalSignature", - "nonRepudiation", - "keyEncipherment", - "dataEncipherment", - "keyAgreement", - "keyCertSign", - "cRLSign", - "encipherOnly", - "decipherOnly" - ], - "x-ms-enum": { - "name": "KeyUsageType", - "modelAsString": true - } + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" } - }, - "validity_months": { - "x-ms-client-name": "ValidityInMonths", - "type": "integer", - "format": "int32", - "minimum": 0, - "description": "The duration that the certificate is valid in months." } - }, - "description": "Properties of the X509 component of a certificate." + } }, - "IssuerParameters": { + "Contact": { + "type": "object", + "description": "The contact information for the vault certificates.", "properties": { - "name": { + "email": { "type": "string", - "description": "Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'." + "description": "Email address.", + "x-ms-client-name": "EmailAddress" }, - "cty": { - "x-ms-client-name": "CertificateType", + "name": { "type": "string", - "description": "Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL'" + "description": "Name." }, - "cert_transparency": { - "x-ms-client-name": "CertificateTransparency", - "type": "boolean", - "description": "Indicates if the certificates generated under this policy should be published to certificate transparency logs." + "phone": { + "type": "string", + "description": "Phone number." } - }, - "description": "Parameters for the issuer of the X509 component of a certificate." + } }, - "LifetimeAction": { + "Contacts": { + "type": "object", + "description": "The contacts for the vault certificates.", "properties": { - "trigger": { - "$ref": "#/definitions/Trigger", - "description": "The condition that will execute the action." + "id": { + "type": "string", + "description": "Identifier for the contacts collection.", + "readOnly": true }, - "action": { - "$ref": "#/definitions/Action", - "description": "The action that will be executed." + "contacts": { + "type": "array", + "description": "The contact list for the vault certificates.", + "items": { + "$ref": "#/definitions/Contact" + }, + "x-ms-client-name": "ContactList", + "x-ms-identifiers": [] } - }, - "description": "Action and its trigger that will be performed by Key Vault over the lifetime of a certificate." + } }, - "Action": { + "DeletedCertificateBundle": { + "type": "object", + "description": "A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged.", "properties": { - "action_type": { + "id": { "type": "string", - "description": "The type of the action.", - "enum": [ - "EmailContacts", - "AutoRenew" - ], - "x-ms-enum": { - "name": "CertificatePolicyAction", - "modelAsString": false + "description": "The certificate id.", + "readOnly": true + }, + "kid": { + "type": "string", + "description": "The key id.", + "readOnly": true + }, + "sid": { + "type": "string", + "description": "The secret id.", + "readOnly": true + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "readOnly": true, + "x-ms-client-name": "X509Thumbprint" + }, + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy.", + "readOnly": true + }, + "cer": { + "type": "string", + "format": "byte", + "description": "CER contents of x509 certificate." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12'," + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate attributes." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs", + "additionalProperties": { + "type": "string" } + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted certificate." + }, + "scheduledPurgeDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the certificate is scheduled to be purged, in UTC", + "readOnly": true + }, + "deletedDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the certificate was deleted, in UTC", + "readOnly": true } - }, - "description": "The action that will be executed." + } }, - "Trigger": { + "DeletedCertificateItem": { + "type": "object", + "description": "The deleted certificate item containing metadata about the deleted certificate.", "properties": { - "lifetime_percentage": { + "id": { + "type": "string", + "description": "Certificate identifier." + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate management attributes." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "x-ms-client-name": "X509Thumbprint" + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted certificate." + }, + "scheduledPurgeDate": { "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 99, - "description": "Percentage of lifetime at which to trigger. Value should be between 1 and 99." + "format": "unixtime", + "description": "The time when the certificate is scheduled to be purged, in UTC", + "readOnly": true }, - "days_before_expiry": { + "deletedDate": { "type": "integer", - "format": "int32", - "description": "Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27)." + "format": "unixtime", + "description": "The time when the certificate was deleted, in UTC", + "readOnly": true } - }, - "description": "A condition to be satisfied for an action to be executed." + } }, - "SubjectAlternativeNames": { + "DeletedCertificateListResult": { + "type": "object", + "description": "A list of certificates that have been deleted in this vault.", "properties": { - "emails": { + "value": { "type": "array", + "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates.", "items": { - "type": "string" + "$ref": "#/definitions/DeletedCertificateItem" }, - "description": "Email addresses." + "readOnly": true }, - "dns_names": { - "type": "array", - "items": { - "type": "string" + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted certificates.", + "readOnly": true + } + } + }, + "DeletionRecoveryLevel": { + "type": "string", + "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription", + "CustomizedRecoverable+Purgeable", + "CustomizedRecoverable", + "CustomizedRecoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true, + "values": [ + { + "name": "Purgeable", + "value": "Purgeable", + "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" }, - "description": "Domain names." - }, - "upns": { - "type": "array", - "items": { - "type": "string" + { + "name": "RecoverablePurgeable", + "value": "Recoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" }, - "description": "User principal names." - } - }, - "description": "The subject alternate names of a X509 object." + { + "name": "Recoverable", + "value": "Recoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "RecoverableProtectedSubscription", + "value": "Recoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "CustomizedRecoverablePurgeable", + "value": "CustomizedRecoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." + }, + { + "name": "CustomizedRecoverable", + "value": "CustomizedRecoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." + }, + { + "name": "CustomizedRecoverableProtectedSubscription", + "value": "CustomizedRecoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." + } + ] + } }, - "IssuerBundle": { + "Error": { + "type": "object", "properties": { - "id": { + "code": { "type": "string", - "description": "Identifier for the issuer object.", + "description": "The error code.", "readOnly": true }, - "provider": { + "message": { "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "description": "The error message.", + "readOnly": true }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "description": "The issuer for Key Vault certificate." + "x-nullable": true }, "IssuerAttributes": { + "type": "object", + "description": "The attributes of an issuer managed by the Key Vault service.", "properties": { "enabled": { "type": "boolean", @@ -1715,361 +2017,421 @@ "created": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "Creation time in UTC." + "description": "Creation time in UTC.", + "readOnly": true }, "updated": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "Last updated time in UTC." + "description": "Last updated time in UTC.", + "readOnly": true } - }, - "description": "The attributes of an issuer managed by the Key Vault service." + } }, - "IssuerCredentials": { + "IssuerBundle": { + "type": "object", + "description": "The issuer for Key Vault certificate.", "properties": { - "account_id": { + "id": { "type": "string", - "description": "The user name/account name/account id." + "description": "Identifier for the issuer object.", + "readOnly": true }, - "pwd": { - "x-ms-client-name": "Password", + "provider": { "type": "string", - "description": "The password/secret/account key." - } - }, - "description": "The credentials to be used for the certificate issuer." - }, - "OrganizationDetails": { - "properties": { - "id": { - "type": "string", - "description": "Id of the organization." - }, - "admin_details": { - "type": "array", - "items": { - "$ref": "#/definitions/AdministratorDetails" - }, - "description": "Details of the organization administrator." - } - }, - "description": "Details of the organization of the certificate issuer." - }, - "AdministratorDetails": { - "properties": { - "first_name": { - "type": "string", - "description": "First name." + "description": "The issuer provider." }, - "last_name": { - "type": "string", - "description": "Last name." + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." }, - "email": { - "x-ms-client-name": "EmailAddress", - "type": "string", - "description": "Email address." + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" }, - "phone": { - "type": "string", - "description": "Phone number." + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } - }, - "description": "Details of the organization administrator of the certificate issuer." + } }, - "Contacts": { + "IssuerCredentials": { + "type": "object", + "description": "The credentials to be used for the certificate issuer.", "properties": { - "id": { + "account_id": { "type": "string", - "description": "Identifier for the contacts collection.", - "readOnly": true + "description": "The user name/account name/account id." }, - "contacts": { - "x-ms-client-name": "ContactList", - "type": "array", - "items": { - "$ref": "#/definitions/Contact" - }, - "description": "The contact list for the vault certificates." + "pwd": { + "type": "string", + "description": "The password/secret/account key.", + "x-ms-client-name": "Password" } - }, - "description": "The contacts for the vault certificates." + } }, - "Contact": { + "IssuerParameters": { + "type": "object", + "description": "Parameters for the issuer of the X509 component of a certificate.", "properties": { - "email": { - "x-ms-client-name": "EmailAddress", - "type": "string", - "description": "Email address." - }, "name": { "type": "string", - "description": "Name." + "description": "Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'." }, - "phone": { + "cty": { "type": "string", - "description": "Phone number." + "description": "Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL'", + "x-ms-client-name": "CertificateType" + }, + "cert_transparency": { + "type": "boolean", + "description": "Indicates if the certificates generated under this policy should be published to certificate transparency logs.", + "x-ms-client-name": "CertificateTransparency" } - }, - "description": "The contact information for the vault certificates." + } }, - "CertificateCreateParameters": { - "properties": { - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + "JsonWebKeyCurveName": { + "type": "string", + "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true, + "values": [ + { + "name": "P_256", + "value": "P-256", + "description": "The NIST P-256 elliptic curve, AKA SECG curve SECP256R1." }, - "description": "Application specific metadata in the form of key-value pairs." - } - }, - "description": "The certificate create parameters." + { + "name": "P_384", + "value": "P-384", + "description": "The NIST P-384 elliptic curve, AKA SECG curve SECP384R1." + }, + { + "name": "P_521", + "value": "P-521", + "description": "The NIST P-521 elliptic curve, AKA SECG curve SECP521R1." + }, + { + "name": "P_256K", + "value": "P-256K", + "description": "The SECG SECP256K1 elliptic curve." + } + ] + } }, - "CertificateImportParameters": { + "JsonWebKeyType": { + "type": "string", + "description": "The type of key pair to be used for the certificate.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM", + "oct", + "oct-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true, + "values": [ + { + "name": "EC", + "value": "EC", + "description": "Elliptic Curve." + }, + { + "name": "EC_HSM", + "value": "EC-HSM", + "description": "Elliptic Curve with a private key which is not exportable from the HSM." + }, + { + "name": "RSA", + "value": "RSA", + "description": "RSA (https://tools.ietf.org/html/rfc3447)." + }, + { + "name": "RSA_HSM", + "value": "RSA-HSM", + "description": "RSA with a private key which is not exportable from the HSM." + }, + { + "name": "oct", + "value": "oct", + "description": "Octet sequence (used to represent symmetric keys)." + }, + { + "name": "oct_HSM", + "value": "oct-HSM", + "description": "Octet sequence with a private key which is not exportable from the HSM." + } + ] + } + }, + "KeyProperties": { + "type": "object", + "description": "Properties of the key pair backing a certificate.", "properties": { - "value": { - "x-ms-client-name": "base64EncodedCertificate", - "type": "string", - "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key." + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported. Release policy must be provided when creating the first version of an exportable key." }, - "pwd": { - "x-ms-client-name": "password", - "type": "string", - "description": "If the private key in base64EncodedCertificate is encrypted, the password used for encryption." + "kty": { + "$ref": "#/definitions/JsonWebKeyType", + "description": "The type of key pair to be used for the certificate.", + "x-ms-client-name": "keyType" }, - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." + "key_size": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA.", + "x-ms-client-name": "keySize" }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." + "reuse_key": { + "type": "boolean", + "description": "Indicates if the same key pair will be used on certificate renewal.", + "x-ms-client-name": "reuseKey" }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + "crv": { + "$ref": "#/definitions/JsonWebKeyCurveName", + "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.", + "x-ms-client-name": "curve" } - }, - "description": "The certificate import parameters.", - "required": [ - "value" - ] + } }, - "CertificateUpdateParameters": { - "properties": { - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + "KeyUsageType": { + "type": "string", + "description": "Supported usages of a certificate key.", + "enum": [ + "digitalSignature", + "nonRepudiation", + "keyEncipherment", + "dataEncipherment", + "keyAgreement", + "keyCertSign", + "cRLSign", + "encipherOnly", + "decipherOnly" + ], + "x-ms-enum": { + "name": "KeyUsageType", + "modelAsString": true, + "values": [ + { + "name": "digitalSignature", + "value": "digitalSignature", + "description": "Indicates that the certificate key can be used as a digital signature." }, - "description": "Application specific metadata in the form of key-value pairs." - } - }, - "description": "The certificate update parameters." - }, - "CertificateMergeParameters": { - "properties": { - "x5c": { - "x-ms-client-name": "x509Certificates", - "type": "array", - "items": { - "type": "string", - "format": "byte" + { + "name": "nonRepudiation", + "value": "nonRepudiation", + "description": "Indicates that the certificate key can be used for authentication." }, - "description": "The certificate or the certificate chain to merge." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + { + "name": "keyEncipherment", + "value": "keyEncipherment", + "description": "Indicates that the certificate key can be used for key encryption." + }, + { + "name": "dataEncipherment", + "value": "dataEncipherment", + "description": "Indicates that the certificate key can be used for data encryption." + }, + { + "name": "keyAgreement", + "value": "keyAgreement", + "description": "Indicates that the certificate key can be used to determine key agreement, such as a key created using the Diffie-Hellman key agreement algorithm." }, - "description": "Application specific metadata in the form of key-value pairs." + { + "name": "keyCertSign", + "value": "keyCertSign", + "description": "Indicates that the certificate key can be used to sign certificates." + }, + { + "name": "cRLSign", + "value": "cRLSign", + "description": "Indicates that the certificate key can be used to sign a certificate revocation list." + }, + { + "name": "encipherOnly", + "value": "encipherOnly", + "description": "Indicates that the certificate key can be used for encryption only." + }, + { + "name": "decipherOnly", + "value": "decipherOnly", + "description": "Indicates that the certificate key can be used for decryption only." + } + ] + } + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true } - }, - "description": "The certificate merge parameters", - "required": [ - "x5c" - ] + } }, - "CertificateIssuerSetParameters": { + "LifetimeAction": { + "type": "object", + "description": "Action and its trigger that will be performed by Key Vault over the lifetime of a certificate.", "properties": { - "provider": { - "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "trigger": { + "$ref": "#/definitions/Trigger", + "description": "The condition that will execute the action." }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "action": { + "$ref": "#/definitions/Action", + "description": "The action that will be executed." } - }, - "description": "The certificate issuer set parameters.", - "required": [ - "provider" - ] + } }, - "CertificateIssuerUpdateParameters": { + "OrganizationDetails": { + "type": "object", + "description": "Details of the organization of the certificate issuer.", "properties": { - "provider": { + "id": { "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "description": "Id of the organization." }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "admin_details": { + "type": "array", + "description": "Details of the organization administrator.", + "items": { + "$ref": "#/definitions/AdministratorDetails" + }, + "x-ms-identifiers": [] } - }, - "description": "The certificate issuer update parameters." + } }, - "CertificateOperationUpdateParameter": { + "PendingCertificateSigningRequestResult": { + "type": "object", + "description": "The pending certificate signing request result.", "properties": { - "cancellation_requested": { - "type": "boolean", - "description": "Indicates if cancellation was requested on the certificate operation." + "value": { + "type": "string", + "description": "The pending certificate signing request as Base64 encoded string.", + "readOnly": true } - }, - "description": "The certificate operation update parameters.", - "required": [ - "cancellation_requested" - ] + } }, - "CertificateListResult": { + "SecretProperties": { + "type": "object", + "description": "Properties of the key backing a certificate.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/CertificateItem" - }, - "readOnly": true, - "description": "A response message containing a list of certificates in the key vault along with a link to the next page of certificates." - }, - "nextLink": { + "contentType": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of certificates." + "description": "The media type (MIME type)." } - }, - "description": "The certificate list result." + } }, - "DeletedCertificateListResult": { + "SubjectAlternativeNames": { + "type": "object", + "description": "The subject alternate names of a X509 object.", "properties": { - "value": { + "emails": { "type": "array", + "description": "Email addresses.", "items": { - "$ref": "#/definitions/DeletedCertificateItem" - }, - "readOnly": true, - "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates" + "type": "string" + } }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "The URL to get the next set of deleted certificates." - } - }, - "description": "A list of certificates that have been deleted in this vault." - }, - "CertificateIssuerListResult": { - "properties": { - "value": { + "dns_names": { "type": "array", + "description": "Domain names.", "items": { - "$ref": "#/definitions/CertificateIssuerItem" + "type": "string" }, - "readOnly": true, - "description": "A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers." + "x-ms-client-name": "dnsNames" }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "The URL to get the next set of certificate issuers." - } - }, - "description": "The certificate issuer list result." - }, - "PendingCertificateSigningRequestResult": { - "properties": { - "value": { - "type": "string", - "readOnly": true, - "description": "The pending certificate signing request as Base64 encoded string." + "upns": { + "type": "array", + "description": "User principal names.", + "items": { + "type": "string" + } } - }, - "description": "The pending certificate signing request result." + } }, - "CertificateRestoreParameters": { + "Trigger": { + "type": "object", + "description": "A condition to be satisfied for an action to be executed.", "properties": { - "value": { - "type": "string", - "x-ms-client-name": "certificateBundleBackup", - "format": "base64url", - "description": "The backup blob associated with a certificate bundle." + "lifetime_percentage": { + "type": "integer", + "format": "int32", + "description": "Percentage of lifetime at which to trigger. Value should be between 1 and 99.", + "minimum": 1, + "maximum": 99, + "x-ms-client-name": "lifetimePercentage" + }, + "days_before_expiry": { + "type": "integer", + "format": "int32", + "description": "Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27).", + "x-ms-client-name": "daysBeforeExpiry" } - }, - "description": "The certificate restore parameters.", - "required": [ - "value" - ] + } }, - "BackupCertificateResult": { + "X509CertificateProperties": { + "type": "object", + "description": "Properties of the X509 component of a certificate.", "properties": { - "value": { + "subject": { "type": "string", - "format": "base64url", - "readOnly": true, - "description": "The backup blob containing the backed up certificate." + "description": "The subject name. Should be a valid X509 distinguished Name." + }, + "ekus": { + "type": "array", + "description": "The enhanced key usage.", + "items": { + "type": "string" + } + }, + "sans": { + "$ref": "#/definitions/SubjectAlternativeNames", + "description": "The subject alternative names.", + "x-ms-client-name": "subjectAlternativeNames" + }, + "key_usage": { + "type": "array", + "description": "Defines how the certificate's key may be used.", + "items": { + "$ref": "#/definitions/KeyUsageType" + }, + "x-ms-client-name": "keyUsage" + }, + "validity_months": { + "type": "integer", + "format": "int32", + "description": "The duration that the certificate is valid in months.", + "minimum": 0, + "x-ms-client-name": "ValidityInMonths" } - }, - "description": "The backup certificate result, containing the backup blob." + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupCertificate-example.json index 89010c4c4e8e..055e7b58389c 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupCertificate-example.json @@ -10,5 +10,7 @@ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" } } - } + }, + "operationId": "BackupCertificate", + "title": "BackupCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/CreateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/CreateCertificate-example.json index ca66c4206e04..225ca1871ca6 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/CreateCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/CreateCertificate-example.json @@ -43,5 +43,7 @@ "request_id": "6faacd568ab049a2803861e8dd3ae21f" } } - } + }, + "operationId": "CreateCertificate", + "title": "CreateCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificate-example.json index bbd0aea144c7..337bb017bfa9 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificate-example.json @@ -61,5 +61,7 @@ } } } - } + }, + "operationId": "DeleteCertificate", + "title": "DeleteCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateContacts-example.json index d84db67255da..5f2b24c266df 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateContacts-example.json @@ -21,5 +21,7 @@ ] } } - } + }, + "operationId": "DeleteCertificateContacts", + "title": "DeleteCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateIssuer-example.json index c54626ee4e38..0d006531e5e9 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateIssuer-example.json @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "DeleteCertificateIssuer", + "title": "DeleteCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateOperation-example.json index 75a74da1cca9..847a2c21febd 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteCertificateOperation-example.json @@ -18,5 +18,7 @@ "request_id": "b88791e33d9c4d609d3e3cc3d2d40d11" } } - } + }, + "operationId": "DeleteCertificateOperation", + "title": "DeleteCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificate-example.json index c49a0f9a824e..f68014a529e7 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificate-example.json @@ -59,5 +59,7 @@ } } } - } + }, + "operationId": "GetCertificate", + "title": "GetCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateContacts-example.json index d84db67255da..3c167c00ac17 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateContacts-example.json @@ -21,5 +21,7 @@ ] } } - } + }, + "operationId": "GetCertificateContacts", + "title": "GetCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuer-example.json index c54626ee4e38..322ba45bb498 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuer-example.json @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "GetCertificateIssuer", + "title": "GetCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuers-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuers-example.json index 48661f968b1f..51c7ac44d3a0 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuers-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateIssuers-example.json @@ -23,5 +23,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificateIssuers", + "title": "GetCertificateIssuers" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateOperation-example.json index a0a287990a77..9c36c7601fce 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateOperation-example.json @@ -18,5 +18,7 @@ "request_id": "6faacd568ab049a2803861e8dd3ae21f" } } - } + }, + "operationId": "GetCertificateOperation", + "title": "GetCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificatePolicy-example.json index 7c87ca443faa..9cea5880c516 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificatePolicy-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificatePolicy-example.json @@ -43,5 +43,7 @@ } } } - } + }, + "operationId": "GetCertificatePolicy", + "title": "GetCertificatePolicy" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateVersions-example.json index 3e5a449b53b0..b1b73b715e81 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateVersions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificateVersions-example.json @@ -34,5 +34,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificateVersions", + "title": "GetCertificateVersions" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificates-example.json index 62079bc19cdb..0716b8061c6c 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificates-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetCertificates-example.json @@ -33,5 +33,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificates", + "title": "GetCertificates" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificate-example.json index 885697ffcb9f..04aa34b77401 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificate-example.json @@ -62,5 +62,7 @@ } } } - } + }, + "operationId": "GetDeletedCertificate", + "title": "GetDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificates-example.json index bc6ba615a2e7..4713b1d4aab1 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificates-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedCertificates-example.json @@ -27,5 +27,7 @@ "nextLink": "https://myvault.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1" } } - } + }, + "operationId": "GetDeletedCertificates", + "title": "GetDeletedCertificates" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ImportCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ImportCertificate-example.json index c9efb0d8d745..43f26612871e 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ImportCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/ImportCertificate-example.json @@ -73,5 +73,7 @@ } } } - } + }, + "operationId": "ImportCertificate", + "title": "ImportCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/MergeCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/MergeCertificate-example.json index 7936654a5d7e..3b0f087479ca 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/MergeCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/MergeCertificate-example.json @@ -64,5 +64,7 @@ } } } - } + }, + "operationId": "MergeCertificate", + "title": "MergeCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedCertificate-example.json index ae3861f3a087..617357f41faa 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedCertificate-example.json @@ -6,5 +6,7 @@ }, "responses": { "204": {} - } + }, + "operationId": "PurgeDeletedCertificate", + "title": "PurgeDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedCertificate-example.json index 7d072c9e1f46..f8651ed7f2c6 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedCertificate-example.json @@ -58,5 +58,7 @@ } } } - } + }, + "operationId": "RecoverDeletedCertificate", + "title": "RecoverDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreCertificate-example.json index 40505849bf53..c41c4b53df08 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreCertificate-example.json @@ -66,5 +66,7 @@ } } } - } + }, + "operationId": "RestoreCertificate", + "title": "RestoreCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateContacts-example.json index 042dfa8b7917..1aec2a573363 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateContacts-example.json @@ -35,5 +35,7 @@ ] } } - } + }, + "operationId": "SetCertificateContacts", + "title": "SetCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateIssuer-example.json index fae64d288b97..3eeccacc0085 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetCertificateIssuer-example.json @@ -46,5 +46,7 @@ } } } - } + }, + "operationId": "SetCertificateIssuer", + "title": "SetCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificate-example.json index a49d4fbb3441..d3fff014819f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificate-example.json @@ -35,5 +35,7 @@ } } } - } + }, + "operationId": "UpdateCertificate", + "title": "UpdateCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateIssuer-example.json index addcb7e6f63a..0fda2872d4e3 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateIssuer-example.json @@ -36,5 +36,7 @@ } } } - } + }, + "operationId": "UpdateCertificateIssuer", + "title": "UpdateCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateOperation-example.json index c574a0dd34c7..b1d1aa4bd7a3 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificateOperation-example.json @@ -21,5 +21,7 @@ "request_id": "3dd81d528cc84c5a837c607f1a50f2e1" } } - } + }, + "operationId": "UpdateCertificateOperation", + "title": "UpdateCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificatePolicy-example.json index 1713b5f1c196..09ed930e0efc 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificatePolicy-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateCertificatePolicy-example.json @@ -76,5 +76,7 @@ } } } - } + }, + "operationId": "UpdateCertificatePolicy", + "title": "UpdateCertificatePolicy" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/certificates.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/certificates.json index 1a69c7a9aa91..dab2dcffcaac 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/certificates.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/certificates.json @@ -2,116 +2,136 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.5", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.5" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { "/certificates": { "get": { - "tags": [ - "Certificates" - ], "operationId": "GetCertificates", "summary": "List certificates in a specified key vault", "description": "The GetCertificates operation returns the set of certificates resources in the specified key vault. This operation requires the certificates/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "maximum": 25 }, { "name": "includePending", "in": "query", + "description": "Specifies whether to include certificates which are not completely provisioned.", "required": false, - "type": "boolean", - "description": "Specifies whether to include certificates which are not completely provisioned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "boolean" } ], "responses": { "200": { - "description": "A response message containing a list of certificates along with a link to the next page of certificates.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetCertificates": { "$ref": "./examples/GetCertificates-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/certificates/{certificate-name}": { "delete": { - "tags": [ - "Certificates" - ], "operationId": "DeleteCertificate", "summary": "Deletes a certificate from a specified key vault.", "description": "Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot be used to remove individual versions of a certificate object. This operation requires the certificates/delete permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The deleted certificate.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -122,527 +142,443 @@ } } }, - "/certificates/contacts": { - "put": { - "tags": [ - "Certificates" - ], - "operationId": "SetCertificateContacts", - "description": "Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission.", - "summary": "Sets the certificate contacts for the specified key vault.", + "/certificates/{certificate-name}/{certificate-version}": { + "get": { + "operationId": "GetCertificate", + "summary": "Gets information about a certificate.", + "description": "Gets information about a specific certificate. This operation requires the certificates/get permission.", "parameters": [ { - "name": "contacts", - "in": "body", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate in the given vault.", "required": true, - "schema": { - "$ref": "#/definitions/Contacts" - }, - "description": "The contacts for the key vault certificate." + "type": "string", + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificate-version", + "in": "path", + "description": "The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateVersion" } ], "responses": { "200": { - "description": "The contacts for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Contacts" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetCertificateContacts": { - "$ref": "./examples/SetCertificateContacts-example.json" + "GetCertificate": { + "$ref": "./examples/GetCertificate-example.json" } } }, - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateContacts", - "summary": "Lists the certificate contacts for a specified key vault.", - "description": "The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission.", + "patch": { + "operationId": "UpdateCertificate", + "summary": "Updates the specified attributes associated with the given certificate.", + "description": "The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission.", "parameters": [ { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The contacts for the key vault certificate.", - "schema": { - "$ref": "#/definitions/Contacts" - } + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "default": { - "description": "Key Vault error response describing why the operation failed.", + { + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate in the given key vault.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateName" + }, + { + "name": "certificate-version", + "in": "path", + "description": "The version of the certificate.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateVersion" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters for certificate update.", + "required": true, "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/CertificateUpdateParameters" } } - }, - "x-ms-examples": { - "GetCertificateContacts": { - "$ref": "./examples/GetCertificateContacts-example.json" - } - } - }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateContacts", - "description": "Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission.", - "summary": "Deletes the certificate contacts for a specified key vault.", - "parameters": [ - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } ], "responses": { "200": { - "description": "The contacts for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Contacts" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateContacts": { - "$ref": "./examples/DeleteCertificateContacts-example.json" + "UpdateCertificate": { + "$ref": "./examples/UpdateCertificate-example.json" } } } }, - "/certificates/issuers": { - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateIssuers", - "summary": "List certificate issuers for a specified key vault.", - "description": "The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "/certificates/{certificate-name}/backup": { + "post": { + "operationId": "BackupCertificate", + "summary": "Backs up the specified certificate.", + "description": "Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission.", "parameters": [ { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificate-name", + "in": "path", + "description": "The name of the certificate.", + "required": true, + "type": "string", + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A response message containing a list of certificate issuers in a key vault along with a link to the next page of certificate issuers.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateIssuerListResult" + "$ref": "#/definitions/BackupCertificateResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetCertificateIssuers": { - "$ref": "./examples/GetCertificateIssuers-example.json" + "BackupCertificate": { + "$ref": "./examples/BackupCertificate-example.json" } } } }, - "/certificates/issuers/{issuer-name}": { - "put": { - "tags": [ - "Certificates" - ], - "operationId": "SetCertificateIssuer", - "summary": "Sets the specified certificate issuer.", - "description": "The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission.", + "/certificates/{certificate-name}/create": { + "post": { + "operationId": "CreateCertificate", + "summary": "Creates a new certificate.", + "description": "If this is the first version, the certificate resource is created. This operation requires the certificates/create permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the issuer. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "certificateName" }, { - "name": "parameter", + "name": "parameters", "in": "body", + "description": "The parameters to create a certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateIssuerSetParameters" - }, - "description": "Certificate issuer set parameter." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateCreateParameters" + } } ], "responses": { - "200": { - "description": "The issuer for the key vault certificate.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetCertificateIssuer": { - "$ref": "./examples/SetCertificateIssuer-example.json" + "CreateCertificate": { + "$ref": "./examples/CreateCertificate-example.json" } } - }, - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificateIssuer", - "summary": "Updates the specified certificate issuer.", - "description": "The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission.", + } + }, + "/certificates/{certificate-name}/import": { + "post": { + "operationId": "ImportCertificate", + "summary": "Imports a certificate into a specified key vault.", + "description": "Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the issuer." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "certificateName" }, { - "name": "parameter", + "name": "parameters", "in": "body", + "description": "The parameters to import the certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateIssuerUpdateParameters" - }, - "description": "Certificate issuer update parameter." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateImportParameters" + } } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificateIssuer": { - "$ref": "./examples/UpdateCertificateIssuer-example.json" + "ImportCertificate": { + "$ref": "./examples/ImportCertificate-example.json" } } - }, + } + }, + "/certificates/{certificate-name}/pending": { "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateIssuer", - "summary": "Lists the specified certificate issuer.", - "description": "The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "operationId": "GetCertificateOperation", + "summary": "Gets the creation operation of a certificate.", + "description": "Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the issuer." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificateIssuer": { - "$ref": "./examples/GetCertificateIssuer-example.json" + "GetCertificateOperation": { + "$ref": "./examples/GetCertificateOperation-example.json" } } }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateIssuer", - "summary": "Deletes the specified certificate issuer.", - "description": "The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission.", + "patch": { + "operationId": "UpdateCertificateOperation", + "summary": "Updates a certificate operation.", + "description": "Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission.", "parameters": [ { - "name": "issuer-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The name of the issuer." + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "certificateOperation", + "in": "body", + "description": "The certificate operation response.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateOperationUpdateParameter" + } } ], "responses": { "200": { - "description": "The issuer for the key vault certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/IssuerBundle" + "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateIssuer": { - "$ref": "./examples/DeleteCertificateIssuer-example.json" + "UpdateCertificateOperation": { + "$ref": "./examples/UpdateCertificateOperation-example.json" } } - } - }, - "/certificates/{certificate-name}/create": { - "post": { - "tags": [ - "Certificates" - ], - "operationId": "CreateCertificate", - "summary": "Creates a new certificate.", - "description": "If this is the first version, the certificate resource is created. This operation requires the certificates/create permission.", + }, + "delete": { + "operationId": "DeleteCertificateOperation", + "summary": "Deletes the creation operation for a specific certificate.", + "description": "Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/CertificateCreateParameters" - }, - "description": "The parameters to create a certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { - "202": { - "description": "Created certificate bundle.", + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateOperation" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "CreateCertificate": { - "$ref": "./examples/CreateCertificate-example.json" + "DeleteCertificateOperation": { + "$ref": "./examples/DeleteCertificateOperation-example.json" } } } }, - "/certificates/{certificate-name}/import": { + "/certificates/{certificate-name}/pending/merge": { "post": { - "tags": [ - "Certificates" - ], - "operationId": "ImportCertificate", - "summary": "Imports a certificate into a specified key vault.", - "description": "Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format.", + "operationId": "MergeCertificate", + "summary": "Merges a certificate or a certificate chain with a key pair existing on the server.", + "description": "The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the certificate. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." + "x-ms-client-name": "certificateName" }, { "name": "parameters", "in": "body", + "description": "The parameters to merge certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateImportParameters" - }, - "description": "The parameters to import the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Imported certificate bundle to the vault.", - "schema": { - "$ref": "#/definitions/CertificateBundle" - } - }, - "default": { - "description": "Key Vault error response describing why the operation failed.", - "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/CertificateMergeParameters" } } - }, - "x-ms-examples": { - "ImportCertificate": { - "$ref": "./examples/ImportCertificate-example.json" - } - } - } - }, - "/certificates/{certificate-name}/versions": { - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateVersions", - "summary": "List the versions of a certificate.", - "description": "The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.", - "parameters": [ - { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." - }, - { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" - } ], "responses": { - "200": { - "description": "A response message containing a list of certificates in the key vault along with a link to the next page of keys.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/CertificateListResult" + "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetCertificateVersions": { - "$ref": "./examples/GetCertificateVersions-example.json" + "MergeCertificate": { + "$ref": "./examples/MergeCertificate-example.json" } } } }, "/certificates/{certificate-name}/policy": { "get": { - "tags": [ - "Certificates" - ], "operationId": "GetCertificatePolicy", "summary": "Lists the policy for a certificate.", "description": "The GetCertificatePolicy operation returns the specified certificate policy resources in the specified key vault. This operation requires the certificates/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate in a given key vault.", "required": true, "type": "string", - "description": "The name of the certificate in a given key vault." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "The certificate policy.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificatePolicy" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -653,44 +589,42 @@ } }, "patch": { - "tags": [ - "Certificates" - ], "operationId": "UpdateCertificatePolicy", "summary": "Updates the policy for a certificate.", "description": "Set specified members in the certificate policy. Leave others as null. This operation requires the certificates/update permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate in the given vault.", "required": true, "type": "string", - "description": "The name of the certificate in the given vault." + "x-ms-client-name": "certificateName" }, { "name": "certificatePolicy", "in": "body", + "description": "The policy for the certificate.", "required": true, "schema": { "$ref": "#/definitions/CertificatePolicy" - }, - "description": "The policy for the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "The certificate policy", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificatePolicy" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -701,365 +635,398 @@ } } }, - "/certificates/{certificate-name}/{certificate-version}": { - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificate", - "summary": "Updates the specified attributes associated with the given certificate.", - "description": "The UpdateCertificate operation applies the specified update on the given certificate; the only elements updated are the certificate's attributes. This operation requires the certificates/update permission.", + "/certificates/{certificate-name}/versions": { + "get": { + "operationId": "GetCertificateVersions", + "summary": "List the versions of a certificate.", + "description": "The GetCertificateVersions operation returns the versions of a certificate in the specified key vault. This operation requires the certificates/list permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate in the given key vault." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "certificate-version", + "name": "certificate-name", "in": "path", + "description": "The name of the certificate.", "required": true, "type": "string", - "description": "The version of the certificate." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/CertificateUpdateParameters" - }, - "description": "The parameters for certificate update." + "x-ms-client-name": "certificateName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "The updated certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/CertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificate": { - "$ref": "./examples/UpdateCertificate-example.json" + "GetCertificateVersions": { + "$ref": "./examples/GetCertificateVersions-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, + } + }, + "/certificates/contacts": { "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificate", - "summary": "Gets information about a certificate.", - "description": "Gets information about a specific certificate. This operation requires the certificates/get permission.", + "operationId": "GetCertificateContacts", + "summary": "Lists the certificate contacts for a specified key vault.", + "description": "The GetCertificateContacts operation returns the set of certificate contact resources in the specified key vault. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate in the given vault." - }, - { - "name": "certificate-version", - "in": "path", - "required": true, - "type": "string", - "description": "The version of the certificate. This URI fragment is optional. If not specified, the latest version of the certificate is returned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "The retrieved certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificate": { - "$ref": "./examples/GetCertificate-example.json" + "GetCertificateContacts": { + "$ref": "./examples/GetCertificateContacts-example.json" } } - } - }, - "/certificates/{certificate-name}/pending": { - "patch": { - "tags": [ - "Certificates" - ], - "operationId": "UpdateCertificateOperation", - "summary": "Updates a certificate operation.", - "description": "Updates a certificate creation operation that is already in progress. This operation requires the certificates/update permission.", + }, + "put": { + "operationId": "SetCertificateContacts", + "summary": "Sets the certificate contacts for the specified key vault.", + "description": "Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "certificateOperation", + "name": "contacts", "in": "body", + "description": "The contacts for the key vault certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateOperationUpdateParameter" - }, - "description": "The certificate operation response." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/Contacts" + } } ], "responses": { "200": { - "description": "A message containing the certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateCertificateOperation": { - "$ref": "./examples/UpdateCertificateOperation-example.json" + "SetCertificateContacts": { + "$ref": "./examples/SetCertificateContacts-example.json" } } }, - "get": { - "tags": [ - "Certificates" - ], - "operationId": "GetCertificateOperation", - "summary": "Gets the creation operation of a certificate.", - "description": "Gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission.", + "delete": { + "operationId": "DeleteCertificateContacts", + "summary": "Deletes the certificate contacts for a specified key vault.", + "description": "Deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" } ], "responses": { "200": { - "description": "The certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/Contacts" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetCertificateOperation": { - "$ref": "./examples/GetCertificateOperation-example.json" + "DeleteCertificateContacts": { + "$ref": "./examples/DeleteCertificateContacts-example.json" } } - }, - "delete": { - "tags": [ - "Certificates" - ], - "operationId": "DeleteCertificateOperation", - "summary": "Deletes the creation operation for a specific certificate.", - "description": "Deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no longer created. This operation requires the certificates/update permission.", + } + }, + "/certificates/issuers": { + "get": { + "operationId": "GetCertificateIssuers", + "summary": "List certificate issuers for a specified key vault.", + "description": "The GetCertificateIssuers operation returns the set of certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", "parameters": [ { - "name": "certificate-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the certificate." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 + } + ], + "responses": { "200": { - "description": "A message containing the certificate operation response.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateOperation" + "$ref": "#/definitions/CertificateIssuerListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteCertificateOperation": { - "$ref": "./examples/DeleteCertificateOperation-example.json" + "GetCertificateIssuers": { + "$ref": "./examples/GetCertificateIssuers-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/certificates/{certificate-name}/pending/merge": { - "post": { - "tags": [ - "Certificates" + "/certificates/issuers/{issuer-name}": { + "get": { + "operationId": "GetCertificateIssuer", + "summary": "Lists the specified certificate issuer.", + "description": "The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers permission.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", + "in": "path", + "description": "The name of the issuer.", + "required": true, + "type": "string", + "x-ms-client-name": "issuerName" + } ], - "operationId": "MergeCertificate", - "summary": "Merges a certificate or a certificate chain with a key pair existing on the server.", - "description": "The MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission.", + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/IssuerBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "GetCertificateIssuer": { + "$ref": "./examples/GetCertificateIssuer-example.json" + } + } + }, + "put": { + "operationId": "SetCertificateIssuer", + "summary": "Sets the specified certificate issuer.", + "description": "The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission.", "parameters": [ { - "name": "certificate-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", "in": "path", + "description": "The name of the issuer. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the certificate." + "x-ms-client-name": "issuerName" }, { - "name": "parameters", + "name": "parameter", "in": "body", + "description": "Certificate issuer set parameter.", "required": true, - "x-ms-client-flatten": true, "schema": { - "$ref": "#/definitions/CertificateMergeParameters" - }, - "description": "The parameters to merge certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "$ref": "#/definitions/CertificateIssuerSetParameters" + } } ], "responses": { - "201": { - "description": "Merged certificate bundle to the vault.", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/CertificateBundle" + "$ref": "#/definitions/IssuerBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "MergeCertificate": { - "$ref": "./examples/MergeCertificate-example.json" + "SetCertificateIssuer": { + "$ref": "./examples/SetCertificateIssuer-example.json" } } - } - }, - "/certificates/{certificate-name}/backup": { - "post": { - "tags": [ - "Certificates" - ], - "operationId": "BackupCertificate", - "summary": "Backs up the specified certificate.", - "description": "Requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. This operation requires the certificates/backup permission.", + }, + "patch": { + "operationId": "UpdateCertificateIssuer", + "summary": "Updates the specified certificate issuer.", + "description": "The UpdateCertificateIssuer operation performs an update on the specified certificate issuer entity. This operation requires the certificates/setissuers permission.", "parameters": [ { - "name": "certificate-name", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", "in": "path", + "description": "The name of the issuer.", "required": true, "type": "string", - "description": "The name of the certificate." + "x-ms-client-name": "issuerName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "parameter", + "in": "body", + "description": "Certificate issuer update parameter.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateIssuerUpdateParameters" + } } ], "responses": { "200": { - "description": "The backup blob containing the backed up certificate.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BackupCertificateResult" + "$ref": "#/definitions/IssuerBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "BackupCertificate": { - "$ref": "./examples/BackupCertificate-example.json" + "UpdateCertificateIssuer": { + "$ref": "./examples/UpdateCertificateIssuer-example.json" + } + } + }, + "delete": { + "operationId": "DeleteCertificateIssuer", + "summary": "Deletes the specified certificate issuer.", + "description": "The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "issuer-name", + "in": "path", + "description": "The name of the issuer.", + "required": true, + "type": "string", + "x-ms-client-name": "issuerName" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/IssuerBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" + } + } + }, + "x-ms-examples": { + "DeleteCertificateIssuer": { + "$ref": "./examples/DeleteCertificateIssuer-example.json" } } } }, "/certificates/restore": { "post": { - "tags": [ - "Certificates" - ], "operationId": "RestoreCertificate", "summary": "Restores a backed up certificate to a vault.", "description": "Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "parameters", "in": "body", + "description": "The parameters to restore the certificate.", "required": true, - "x-ms-client-flatten": true, "schema": { "$ref": "#/definitions/CertificateRestoreParameters" - }, - "description": "The parameters to restore the certificate." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "Restored certificate bundle in the vault.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1072,89 +1039,84 @@ }, "/deletedcertificates": { "get": { - "tags": [ - "DeletedCertificates" - ], "operationId": "GetDeletedCertificates", "summary": "Lists the deleted certificates in the specified vault currently available for recovery.", "description": "The GetDeletedCertificates operation retrieves the certificates in the current vault which are in a deleted state and ready for recovery or purging. This operation includes deletion-specific information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete enabled vaults.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "maximum": 25 }, { "name": "includePending", "in": "query", + "description": "Specifies whether to include certificates which are not completely provisioned.", "required": false, - "type": "boolean", - "description": "Specifies whether to include certificates which are not completely provisioned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "type": "boolean" } ], "responses": { "200": { - "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetDeletedCertificates": { "$ref": "./examples/GetDeletedCertificates-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/deletedcertificates/{certificate-name}": { "get": { - "tags": [ - "DeletedCertificates" - ], "operationId": "GetDeletedCertificate", "summary": "Retrieves information about the specified deleted certificate.", "description": "The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, such as retention interval, scheduled permanent deletion and the current deletion recovery level. This operation requires the certificates/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate", "required": true, "type": "string", - "description": "The name of the certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A Certificate bundle of the certificate and its attributes", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedCertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1165,32 +1127,30 @@ } }, "delete": { - "tags": [ - "DeletedCertificates" - ], "operationId": "PurgeDeletedCertificate", "summary": "Permanently deletes the specified deleted certificate.", "description": "The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for recovery. The operation is not available if the recovery level does not specify 'Purgeable'. This operation requires the certificate/purge permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the certificate", "required": true, "type": "string", - "description": "The name of the certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "204": { - "description": "No content signaling that the certificate was purged forever." + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1203,35 +1163,33 @@ }, "/deletedcertificates/{certificate-name}/recover": { "post": { - "tags": [ - "DeletedCertificates" - ], "operationId": "RecoverDeletedCertificate", "summary": "Recovers the deleted certificate back to its current version under /certificates.", "description": "The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval (available in the deleted certificate's attributes). This operation requires the certificates/recover permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "certificate-name", "in": "path", + "description": "The name of the deleted certificate", "required": true, "type": "string", - "description": "The name of the deleted certificate" - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "certificateName" } ], "responses": { "200": { - "description": "A Certificate bundle of the original certificate and its attributes", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/CertificateBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -1244,133 +1202,156 @@ } }, "definitions": { - "CertificateAttributes": { - "allOf": [ - { - "$ref": "common.json#/definitions/Attributes" - } - ], + "Action": { + "type": "object", + "description": "The action that will be executed.", "properties": { - "recoverableDays": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0." - }, - "recoveryLevel": { - "type": "string", - "description": "Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval.", - "enum": [ - "Purgeable", - "Recoverable+Purgeable", - "Recoverable", - "Recoverable+ProtectedSubscription", - "CustomizedRecoverable+Purgeable", - "CustomizedRecoverable", - "CustomizedRecoverable+ProtectedSubscription" - ], - "x-ms-enum": { - "name": "DeletionRecoveryLevel", - "modelAsString": true, - "values": [ - { - "value": "Purgeable", - "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" - }, - { - "value": "Recoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "CustomizedRecoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." - }, - { - "value": "CustomizedRecoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." - }, - { - "value": "CustomizedRecoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." - } - ] - }, - "readOnly": true, - "x-nullable": false + "action_type": { + "$ref": "#/definitions/CertificatePolicyAction", + "description": "The type of the action.", + "x-ms-client-name": "actionType" } - }, - "description": "The certificate management attributes." + } }, - "CertificateItem": { + "AdministratorDetails": { + "type": "object", + "description": "Details of the organization administrator of the certificate issuer.", "properties": { - "id": { + "first_name": { "type": "string", - "description": "Certificate identifier." - }, - "attributes": { - "$ref": "#/definitions/CertificateAttributes", - "description": "The certificate management attributes." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + "description": "First name." }, - "x5t": { - "x-ms-client-name": "X509Thumbprint", + "last_name": { "type": "string", - "format": "base64url", - "description": "Thumbprint of the certificate." - } - }, - "description": "The certificate item containing certificate metadata." - }, - "CertificateIssuerItem": { - "properties": { - "id": { + "description": "Last name." + }, + "email": { "type": "string", - "description": "Certificate Identifier." + "description": "Email address.", + "x-ms-client-name": "EmailAddress" }, - "provider": { + "phone": { "type": "string", - "description": "The issuer provider." + "description": "Phone number." } - }, - "description": "The certificate issuer item containing certificate issuer metadata." + } }, - "CertificateBundle": { + "Attributes": { + "type": "object", + "description": "The object attributes managed by the KeyVault service.", "properties": { - "id": { - "type": "string", - "description": "The certificate id.", - "readOnly": true + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." }, - "kid": { - "type": "string", - "description": "The key id.", - "readOnly": true + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" }, - "sid": { - "type": "string", - "description": "The secret id.", + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", "readOnly": true }, - "x5t": { - "x-ms-client-name": "X509Thumbprint", + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + } + } + }, + "BackupCertificateResult": { + "type": "object", + "description": "The backup certificate result, containing the backup blob.", + "properties": { + "value": { "type": "string", "format": "base64url", - "description": "Thumbprint of the certificate.", + "description": "The backup blob containing the backed up certificate.", "readOnly": true + } + } + }, + "CertificateAttributes": { + "type": "object", + "description": "The certificate management attributes.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + }, + "recoverableDays": { + "type": "integer", + "format": "int32", + "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0.", + "readOnly": true + }, + "recoveryLevel": { + "$ref": "#/definitions/DeletionRecoveryLevel", + "description": "Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval.", + "readOnly": true + } + } + }, + "CertificateBundle": { + "type": "object", + "description": "A certificate bundle consists of a certificate (X509) plus its attributes.", + "properties": { + "id": { + "type": "string", + "description": "The certificate id.", + "readOnly": true + }, + "kid": { + "type": "string", + "description": "The key id.", + "readOnly": true + }, + "sid": { + "type": "string", + "description": "The secret id.", + "readOnly": true + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "readOnly": true, + "x-ms-client-name": "X509Thumbprint" }, "policy": { "$ref": "#/definitions/CertificatePolicy", @@ -1384,7 +1365,7 @@ }, "contentType": { "type": "string", - "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', " + "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12'," }, "attributes": { "$ref": "#/definitions/CertificateAttributes", @@ -1392,67 +1373,232 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs" + } + } + } + }, + "CertificateCreateParameters": { + "type": "object", + "description": "The certificate create parameters.", + "properties": { + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "CertificateImportParameters": { + "type": "object", + "description": "The certificate import parameters.", + "properties": { + "value": { + "type": "string", + "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key.", + "x-ms-client-name": "base64EncodedCertificate" + }, + "pwd": { + "type": "string", + "description": "If the private key in base64EncodedCertificate is encrypted, the password used for encryption.", + "x-ms-client-name": "password" + }, + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } } }, - "description": "A certificate bundle consists of a certificate (X509) plus its attributes." + "required": [ + "value" + ] }, - "DeletedCertificateBundle": { - "allOf": [ - { - "$ref": "#/definitions/CertificateBundle" + "CertificateIssuerItem": { + "type": "object", + "description": "The certificate issuer item containing certificate issuer metadata.", + "properties": { + "id": { + "type": "string", + "description": "Certificate Identifier." + }, + "provider": { + "type": "string", + "description": "The issuer provider." } - ], + } + }, + "CertificateIssuerListResult": { + "type": "object", + "description": "The certificate issuer list result.", "properties": { - "recoveryId": { + "value": { + "type": "array", + "description": "A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers.", + "items": { + "$ref": "#/definitions/CertificateIssuerItem" + }, + "readOnly": true + }, + "nextLink": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted certificate." + "description": "The URL to get the next set of certificate issuers.", + "readOnly": true + } + } + }, + "CertificateIssuerSetParameters": { + "type": "object", + "description": "The certificate issuer set parameters.", + "properties": { + "provider": { + "type": "string", + "description": "The issuer provider." }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate is scheduled to be purged, in UTC" + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." }, - "deletedDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate was deleted, in UTC" + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" + }, + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } }, - "description": "A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged." + "required": [ + "provider" + ] }, - "DeletedCertificateItem": { - "allOf": [ - { - "$ref": "#/definitions/CertificateItem" + "CertificateIssuerUpdateParameters": { + "type": "object", + "description": "The certificate issuer update parameters.", + "properties": { + "provider": { + "type": "string", + "description": "The issuer provider." + }, + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." + }, + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" + }, + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } - ], + } + }, + "CertificateItem": { + "type": "object", + "description": "The certificate item containing certificate metadata.", "properties": { - "recoveryId": { + "id": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted certificate." + "description": "Certificate identifier." }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate is scheduled to be purged, in UTC" + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate management attributes." }, - "deletedDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the certificate was deleted, in UTC" + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "x-ms-client-name": "X509Thumbprint" + } + } + }, + "CertificateListResult": { + "type": "object", + "description": "The certificate list result.", + "properties": { + "value": { + "type": "array", + "description": "A response message containing a list of certificates in the key vault along with a link to the next page of certificates.", + "items": { + "$ref": "#/definitions/CertificateItem" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of certificates.", + "readOnly": true + } + } + }, + "CertificateMergeParameters": { + "type": "object", + "description": "The certificate merge parameters", + "properties": { + "x5c": { + "type": "array", + "description": "The certificate or the certificate chain to merge.", + "items": { + "type": "string", + "format": "byte" + }, + "x-ms-client-name": "x509Certificates" + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } } }, - "description": "The deleted certificate item containing metadata about the deleted certificate." + "required": [ + "x5c" + ] }, "CertificateOperation": { + "type": "object", + "description": "A certificate operation is returned in case of asynchronous requests.", "properties": { "id": { "type": "string", @@ -1460,9 +1606,9 @@ "readOnly": true }, "issuer": { - "x-ms-client-name": "IssuerParameters", "$ref": "#/definitions/IssuerParameters", - "description": "Parameters for the issuer of the X509 component of a certificate." + "description": "Parameters for the issuer of the X509 component of a certificate.", + "x-ms-client-name": "issuerParameters" }, "csr": { "type": "string", @@ -1482,7 +1628,7 @@ "description": "The status details of the certificate operation." }, "error": { - "$ref": "common.json#/definitions/Error", + "$ref": "#/definitions/Error", "description": "Error encountered, if any, during the certificate operation." }, "target": { @@ -1493,10 +1639,24 @@ "type": "string", "description": "Identifier for the certificate operation." } + } + }, + "CertificateOperationUpdateParameter": { + "type": "object", + "description": "The certificate operation update parameters.", + "properties": { + "cancellation_requested": { + "type": "boolean", + "description": "Indicates if cancellation was requested on the certificate operation." + } }, - "description": "A certificate operation is returned in case of asynchronous requests." + "required": [ + "cancellation_requested" + ] }, "CertificatePolicy": { + "type": "object", + "description": "Management policy for a certificate.", "properties": { "id": { "type": "string", @@ -1504,209 +1664,351 @@ "readOnly": true }, "key_props": { - "x-ms-client-name": "KeyProperties", - "$ref": "keys.json#/definitions/KeyProperties", - "description": "Properties of the key backing a certificate." + "$ref": "#/definitions/KeyProperties", + "description": "Properties of the key backing a certificate.", + "x-ms-client-name": "keyProperties" }, "secret_props": { - "x-ms-client-name": "SecretProperties", - "$ref": "secrets.json#/definitions/SecretProperties", - "description": "Properties of the secret backing a certificate." + "$ref": "#/definitions/SecretProperties", + "description": "Properties of the secret backing a certificate.", + "x-ms-client-name": "secretProperties" }, "x509_props": { - "x-ms-client-name": "X509CertificateProperties", "$ref": "#/definitions/X509CertificateProperties", - "description": "Properties of the X509 component of a certificate." + "description": "Properties of the X509 component of a certificate.", + "x-ms-client-name": "X509CertificateProperties" }, "lifetime_actions": { "type": "array", + "description": "Actions that will be performed by Key Vault over the lifetime of a certificate.", "items": { "$ref": "#/definitions/LifetimeAction" }, - "description": "Actions that will be performed by Key Vault over the lifetime of a certificate." + "x-ms-client-name": "lifetimeActions", + "x-ms-identifiers": [] }, "issuer": { - "x-ms-client-name": "IssuerParameters", "$ref": "#/definitions/IssuerParameters", - "description": "Parameters for the issuer of the X509 component of a certificate." + "description": "Parameters for the issuer of the X509 component of a certificate.", + "x-ms-client-name": "IssuerParameters" }, "attributes": { "$ref": "#/definitions/CertificateAttributes", "description": "The certificate attributes." } - }, - "description": "Management policy for a certificate." + } }, - "X509CertificateProperties": { - "properties": { - "subject": { - "type": "string", - "description": "The subject name. Should be a valid X509 distinguished Name." - }, - "ekus": { - "type": "array", - "items": { - "type": "string" + "CertificatePolicyAction": { + "type": "string", + "description": "The type of the action.", + "enum": [ + "EmailContacts", + "AutoRenew" + ], + "x-ms-enum": { + "name": "CertificatePolicyAction", + "modelAsString": false, + "values": [ + { + "name": "EmailContacts", + "value": "EmailContacts", + "description": "A certificate policy that will email certificate contacts." }, - "description": "The enhanced key usage." + { + "name": "AutoRenew", + "value": "AutoRenew", + "description": "A certificate policy that will auto-renew a certificate." + } + ] + } + }, + "CertificateRestoreParameters": { + "type": "object", + "description": "The certificate restore parameters.", + "properties": { + "value": { + "type": "string", + "format": "base64url", + "description": "The backup blob associated with a certificate bundle.", + "x-ms-client-name": "certificateBundleBackup" + } + }, + "required": [ + "value" + ] + }, + "CertificateUpdateParameters": { + "type": "object", + "description": "The certificate update parameters.", + "properties": { + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy for the certificate.", + "x-ms-client-name": "certificatePolicy" }, - "sans": { - "x-ms-client-name": "SubjectAlternativeNames", - "$ref": "#/definitions/SubjectAlternativeNames", - "description": "The subject alternative names." + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The attributes of the certificate (optional).", + "x-ms-client-name": "certificateAttributes" }, - "key_usage": { - "type": "array", - "description": "Defines how the certificate's key may be used.", - "items": { - "type": "string", - "enum": [ - "digitalSignature", - "nonRepudiation", - "keyEncipherment", - "dataEncipherment", - "keyAgreement", - "keyCertSign", - "cRLSign", - "encipherOnly", - "decipherOnly" - ], - "x-ms-enum": { - "name": "KeyUsageType", - "modelAsString": true - } + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" } - }, - "validity_months": { - "x-ms-client-name": "ValidityInMonths", - "type": "integer", - "format": "int32", - "minimum": 0, - "description": "The duration that the certificate is valid in months." } - }, - "description": "Properties of the X509 component of a certificate." + } }, - "IssuerParameters": { + "Contact": { + "type": "object", + "description": "The contact information for the vault certificates.", "properties": { - "name": { + "email": { "type": "string", - "description": "Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'." + "description": "Email address.", + "x-ms-client-name": "EmailAddress" }, - "cty": { - "x-ms-client-name": "CertificateType", + "name": { "type": "string", - "description": "Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL'" + "description": "Name." }, - "cert_transparency": { - "x-ms-client-name": "CertificateTransparency", - "type": "boolean", - "description": "Indicates if the certificates generated under this policy should be published to certificate transparency logs." + "phone": { + "type": "string", + "description": "Phone number." } - }, - "description": "Parameters for the issuer of the X509 component of a certificate." + } }, - "LifetimeAction": { + "Contacts": { + "type": "object", + "description": "The contacts for the vault certificates.", "properties": { - "trigger": { - "$ref": "#/definitions/Trigger", - "description": "The condition that will execute the action." + "id": { + "type": "string", + "description": "Identifier for the contacts collection.", + "readOnly": true }, - "action": { - "$ref": "#/definitions/Action", - "description": "The action that will be executed." + "contacts": { + "type": "array", + "description": "The contact list for the vault certificates.", + "items": { + "$ref": "#/definitions/Contact" + }, + "x-ms-client-name": "ContactList", + "x-ms-identifiers": [] } - }, - "description": "Action and its trigger that will be performed by Key Vault over the lifetime of a certificate." + } }, - "Action": { + "DeletedCertificateBundle": { + "type": "object", + "description": "A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information on when it will be purged.", "properties": { - "action_type": { + "id": { "type": "string", - "description": "The type of the action.", - "enum": [ - "EmailContacts", - "AutoRenew" - ], - "x-ms-enum": { - "name": "CertificatePolicyAction", - "modelAsString": false + "description": "The certificate id.", + "readOnly": true + }, + "kid": { + "type": "string", + "description": "The key id.", + "readOnly": true + }, + "sid": { + "type": "string", + "description": "The secret id.", + "readOnly": true + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "readOnly": true, + "x-ms-client-name": "X509Thumbprint" + }, + "policy": { + "$ref": "#/definitions/CertificatePolicy", + "description": "The management policy.", + "readOnly": true + }, + "cer": { + "type": "string", + "format": "byte", + "description": "CER contents of x509 certificate." + }, + "contentType": { + "type": "string", + "description": "The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12'," + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate attributes." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs", + "additionalProperties": { + "type": "string" } + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted certificate." + }, + "scheduledPurgeDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the certificate is scheduled to be purged, in UTC", + "readOnly": true + }, + "deletedDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the certificate was deleted, in UTC", + "readOnly": true } - }, - "description": "The action that will be executed." + } }, - "Trigger": { + "DeletedCertificateItem": { + "type": "object", + "description": "The deleted certificate item containing metadata about the deleted certificate.", "properties": { - "lifetime_percentage": { + "id": { + "type": "string", + "description": "Certificate identifier." + }, + "attributes": { + "$ref": "#/definitions/CertificateAttributes", + "description": "The certificate management attributes." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "x5t": { + "type": "string", + "format": "base64url", + "description": "Thumbprint of the certificate.", + "x-ms-client-name": "X509Thumbprint" + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted certificate." + }, + "scheduledPurgeDate": { "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 99, - "description": "Percentage of lifetime at which to trigger. Value should be between 1 and 99." + "format": "unixtime", + "description": "The time when the certificate is scheduled to be purged, in UTC", + "readOnly": true }, - "days_before_expiry": { + "deletedDate": { "type": "integer", - "format": "int32", - "description": "Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27)." + "format": "unixtime", + "description": "The time when the certificate was deleted, in UTC", + "readOnly": true } - }, - "description": "A condition to be satisfied for an action to be executed." + } }, - "SubjectAlternativeNames": { + "DeletedCertificateListResult": { + "type": "object", + "description": "A list of certificates that have been deleted in this vault.", "properties": { - "emails": { + "value": { "type": "array", + "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates.", "items": { - "type": "string" + "$ref": "#/definitions/DeletedCertificateItem" }, - "description": "Email addresses." + "readOnly": true }, - "dns_names": { - "type": "array", - "items": { - "type": "string" + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted certificates.", + "readOnly": true + } + } + }, + "DeletionRecoveryLevel": { + "type": "string", + "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription", + "CustomizedRecoverable+Purgeable", + "CustomizedRecoverable", + "CustomizedRecoverable+ProtectedSubscription" + ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true, + "values": [ + { + "name": "Purgeable", + "value": "Purgeable", + "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" }, - "description": "Domain names." - }, - "upns": { - "type": "array", - "items": { - "type": "string" + { + "name": "RecoverablePurgeable", + "value": "Recoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" }, - "description": "User principal names." - } - }, - "description": "The subject alternate names of a X509 object." + { + "name": "Recoverable", + "value": "Recoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "RecoverableProtectedSubscription", + "value": "Recoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "CustomizedRecoverablePurgeable", + "value": "CustomizedRecoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." + }, + { + "name": "CustomizedRecoverable", + "value": "CustomizedRecoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." + }, + { + "name": "CustomizedRecoverableProtectedSubscription", + "value": "CustomizedRecoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." + } + ] + } }, - "IssuerBundle": { + "Error": { + "type": "object", "properties": { - "id": { + "code": { "type": "string", - "description": "Identifier for the issuer object.", + "description": "The error code.", "readOnly": true }, - "provider": { + "message": { "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "description": "The error message.", + "readOnly": true }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true, + "x-ms-client-name": "innerError" } }, - "description": "The issuer for Key Vault certificate." + "x-nullable": true }, "IssuerAttributes": { + "type": "object", + "description": "The attributes of an issuer managed by the Key Vault service.", "properties": { "enabled": { "type": "boolean", @@ -1715,361 +2017,421 @@ "created": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "Creation time in UTC." + "description": "Creation time in UTC.", + "readOnly": true }, "updated": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "Last updated time in UTC." + "description": "Last updated time in UTC.", + "readOnly": true } - }, - "description": "The attributes of an issuer managed by the Key Vault service." + } }, - "IssuerCredentials": { + "IssuerBundle": { + "type": "object", + "description": "The issuer for Key Vault certificate.", "properties": { - "account_id": { + "id": { "type": "string", - "description": "The user name/account name/account id." + "description": "Identifier for the issuer object.", + "readOnly": true }, - "pwd": { - "x-ms-client-name": "Password", + "provider": { "type": "string", - "description": "The password/secret/account key." - } - }, - "description": "The credentials to be used for the certificate issuer." - }, - "OrganizationDetails": { - "properties": { - "id": { - "type": "string", - "description": "Id of the organization." - }, - "admin_details": { - "type": "array", - "items": { - "$ref": "#/definitions/AdministratorDetails" - }, - "description": "Details of the organization administrator." - } - }, - "description": "Details of the organization of the certificate issuer." - }, - "AdministratorDetails": { - "properties": { - "first_name": { - "type": "string", - "description": "First name." + "description": "The issuer provider." }, - "last_name": { - "type": "string", - "description": "Last name." + "credentials": { + "$ref": "#/definitions/IssuerCredentials", + "description": "The credentials to be used for the issuer." }, - "email": { - "x-ms-client-name": "EmailAddress", - "type": "string", - "description": "Email address." + "org_details": { + "$ref": "#/definitions/OrganizationDetails", + "description": "Details of the organization as provided to the issuer.", + "x-ms-client-name": "organizationDetails" }, - "phone": { - "type": "string", - "description": "Phone number." + "attributes": { + "$ref": "#/definitions/IssuerAttributes", + "description": "Attributes of the issuer object." } - }, - "description": "Details of the organization administrator of the certificate issuer." + } }, - "Contacts": { + "IssuerCredentials": { + "type": "object", + "description": "The credentials to be used for the certificate issuer.", "properties": { - "id": { + "account_id": { "type": "string", - "description": "Identifier for the contacts collection.", - "readOnly": true + "description": "The user name/account name/account id." }, - "contacts": { - "x-ms-client-name": "ContactList", - "type": "array", - "items": { - "$ref": "#/definitions/Contact" - }, - "description": "The contact list for the vault certificates." + "pwd": { + "type": "string", + "description": "The password/secret/account key.", + "x-ms-client-name": "Password" } - }, - "description": "The contacts for the vault certificates." + } }, - "Contact": { + "IssuerParameters": { + "type": "object", + "description": "Parameters for the issuer of the X509 component of a certificate.", "properties": { - "email": { - "x-ms-client-name": "EmailAddress", - "type": "string", - "description": "Email address." - }, "name": { "type": "string", - "description": "Name." + "description": "Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'." }, - "phone": { + "cty": { "type": "string", - "description": "Phone number." + "description": "Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL'", + "x-ms-client-name": "CertificateType" + }, + "cert_transparency": { + "type": "boolean", + "description": "Indicates if the certificates generated under this policy should be published to certificate transparency logs.", + "x-ms-client-name": "CertificateTransparency" } - }, - "description": "The contact information for the vault certificates." + } }, - "CertificateCreateParameters": { - "properties": { - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + "JsonWebKeyCurveName": { + "type": "string", + "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.", + "enum": [ + "P-256", + "P-384", + "P-521", + "P-256K" + ], + "x-ms-enum": { + "name": "JsonWebKeyCurveName", + "modelAsString": true, + "values": [ + { + "name": "P_256", + "value": "P-256", + "description": "The NIST P-256 elliptic curve, AKA SECG curve SECP256R1." }, - "description": "Application specific metadata in the form of key-value pairs." - } - }, - "description": "The certificate create parameters." + { + "name": "P_384", + "value": "P-384", + "description": "The NIST P-384 elliptic curve, AKA SECG curve SECP384R1." + }, + { + "name": "P_521", + "value": "P-521", + "description": "The NIST P-521 elliptic curve, AKA SECG curve SECP521R1." + }, + { + "name": "P_256K", + "value": "P-256K", + "description": "The SECG SECP256K1 elliptic curve." + } + ] + } }, - "CertificateImportParameters": { + "JsonWebKeyType": { + "type": "string", + "description": "The type of key pair to be used for the certificate.", + "enum": [ + "EC", + "EC-HSM", + "RSA", + "RSA-HSM", + "oct", + "oct-HSM" + ], + "x-ms-enum": { + "name": "JsonWebKeyType", + "modelAsString": true, + "values": [ + { + "name": "EC", + "value": "EC", + "description": "Elliptic Curve." + }, + { + "name": "EC_HSM", + "value": "EC-HSM", + "description": "Elliptic Curve with a private key which is not exportable from the HSM." + }, + { + "name": "RSA", + "value": "RSA", + "description": "RSA (https://tools.ietf.org/html/rfc3447)." + }, + { + "name": "RSA_HSM", + "value": "RSA-HSM", + "description": "RSA with a private key which is not exportable from the HSM." + }, + { + "name": "oct", + "value": "oct", + "description": "Octet sequence (used to represent symmetric keys)." + }, + { + "name": "oct_HSM", + "value": "oct-HSM", + "description": "Octet sequence with a private key which is not exportable from the HSM." + } + ] + } + }, + "KeyProperties": { + "type": "object", + "description": "Properties of the key pair backing a certificate.", "properties": { - "value": { - "x-ms-client-name": "base64EncodedCertificate", - "type": "string", - "description": "Base64 encoded representation of the certificate object to import. This certificate needs to contain the private key." + "exportable": { + "type": "boolean", + "description": "Indicates if the private key can be exported. Release policy must be provided when creating the first version of an exportable key." }, - "pwd": { - "x-ms-client-name": "password", - "type": "string", - "description": "If the private key in base64EncodedCertificate is encrypted, the password used for encryption." + "kty": { + "$ref": "#/definitions/JsonWebKeyType", + "description": "The type of key pair to be used for the certificate.", + "x-ms-client-name": "keyType" }, - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." + "key_size": { + "type": "integer", + "format": "int32", + "description": "The key size in bits. For example: 2048, 3072, or 4096 for RSA.", + "x-ms-client-name": "keySize" }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." + "reuse_key": { + "type": "boolean", + "description": "Indicates if the same key pair will be used on certificate renewal.", + "x-ms-client-name": "reuseKey" }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + "crv": { + "$ref": "#/definitions/JsonWebKeyCurveName", + "description": "Elliptic curve name. For valid values, see JsonWebKeyCurveName.", + "x-ms-client-name": "curve" } - }, - "description": "The certificate import parameters.", - "required": [ - "value" - ] + } }, - "CertificateUpdateParameters": { - "properties": { - "policy": { - "x-ms-client-name": "CertificatePolicy", - "$ref": "#/definitions/CertificatePolicy", - "description": "The management policy for the certificate." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + "KeyUsageType": { + "type": "string", + "description": "Supported usages of a certificate key.", + "enum": [ + "digitalSignature", + "nonRepudiation", + "keyEncipherment", + "dataEncipherment", + "keyAgreement", + "keyCertSign", + "cRLSign", + "encipherOnly", + "decipherOnly" + ], + "x-ms-enum": { + "name": "KeyUsageType", + "modelAsString": true, + "values": [ + { + "name": "digitalSignature", + "value": "digitalSignature", + "description": "Indicates that the certificate key can be used as a digital signature." }, - "description": "Application specific metadata in the form of key-value pairs." - } - }, - "description": "The certificate update parameters." - }, - "CertificateMergeParameters": { - "properties": { - "x5c": { - "x-ms-client-name": "x509Certificates", - "type": "array", - "items": { - "type": "string", - "format": "byte" + { + "name": "nonRepudiation", + "value": "nonRepudiation", + "description": "Indicates that the certificate key can be used for authentication." }, - "description": "The certificate or the certificate chain to merge." - }, - "attributes": { - "x-ms-client-name": "CertificateAttributes", - "$ref": "#/definitions/CertificateAttributes", - "description": "The attributes of the certificate (optional)." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + { + "name": "keyEncipherment", + "value": "keyEncipherment", + "description": "Indicates that the certificate key can be used for key encryption." + }, + { + "name": "dataEncipherment", + "value": "dataEncipherment", + "description": "Indicates that the certificate key can be used for data encryption." + }, + { + "name": "keyAgreement", + "value": "keyAgreement", + "description": "Indicates that the certificate key can be used to determine key agreement, such as a key created using the Diffie-Hellman key agreement algorithm." }, - "description": "Application specific metadata in the form of key-value pairs." + { + "name": "keyCertSign", + "value": "keyCertSign", + "description": "Indicates that the certificate key can be used to sign certificates." + }, + { + "name": "cRLSign", + "value": "cRLSign", + "description": "Indicates that the certificate key can be used to sign a certificate revocation list." + }, + { + "name": "encipherOnly", + "value": "encipherOnly", + "description": "Indicates that the certificate key can be used for encryption only." + }, + { + "name": "decipherOnly", + "value": "decipherOnly", + "description": "Indicates that the certificate key can be used for decryption only." + } + ] + } + }, + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true } - }, - "description": "The certificate merge parameters", - "required": [ - "x5c" - ] + } }, - "CertificateIssuerSetParameters": { + "LifetimeAction": { + "type": "object", + "description": "Action and its trigger that will be performed by Key Vault over the lifetime of a certificate.", "properties": { - "provider": { - "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "trigger": { + "$ref": "#/definitions/Trigger", + "description": "The condition that will execute the action." }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "action": { + "$ref": "#/definitions/Action", + "description": "The action that will be executed." } - }, - "description": "The certificate issuer set parameters.", - "required": [ - "provider" - ] + } }, - "CertificateIssuerUpdateParameters": { + "OrganizationDetails": { + "type": "object", + "description": "Details of the organization of the certificate issuer.", "properties": { - "provider": { + "id": { "type": "string", - "description": "The issuer provider." - }, - "credentials": { - "$ref": "#/definitions/IssuerCredentials", - "description": "The credentials to be used for the issuer." - }, - "org_details": { - "x-ms-client-name": "OrganizationDetails", - "$ref": "#/definitions/OrganizationDetails", - "description": "Details of the organization as provided to the issuer." + "description": "Id of the organization." }, - "attributes": { - "$ref": "#/definitions/IssuerAttributes", - "description": "Attributes of the issuer object." + "admin_details": { + "type": "array", + "description": "Details of the organization administrator.", + "items": { + "$ref": "#/definitions/AdministratorDetails" + }, + "x-ms-identifiers": [] } - }, - "description": "The certificate issuer update parameters." + } }, - "CertificateOperationUpdateParameter": { + "PendingCertificateSigningRequestResult": { + "type": "object", + "description": "The pending certificate signing request result.", "properties": { - "cancellation_requested": { - "type": "boolean", - "description": "Indicates if cancellation was requested on the certificate operation." + "value": { + "type": "string", + "description": "The pending certificate signing request as Base64 encoded string.", + "readOnly": true } - }, - "description": "The certificate operation update parameters.", - "required": [ - "cancellation_requested" - ] + } }, - "CertificateListResult": { + "SecretProperties": { + "type": "object", + "description": "Properties of the key backing a certificate.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/CertificateItem" - }, - "readOnly": true, - "description": "A response message containing a list of certificates in the key vault along with a link to the next page of certificates." - }, - "nextLink": { + "contentType": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of certificates." + "description": "The media type (MIME type)." } - }, - "description": "The certificate list result." + } }, - "DeletedCertificateListResult": { + "SubjectAlternativeNames": { + "type": "object", + "description": "The subject alternate names of a X509 object.", "properties": { - "value": { + "emails": { "type": "array", + "description": "Email addresses.", "items": { - "$ref": "#/definitions/DeletedCertificateItem" - }, - "readOnly": true, - "description": "A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates" + "type": "string" + } }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "The URL to get the next set of deleted certificates." - } - }, - "description": "A list of certificates that have been deleted in this vault." - }, - "CertificateIssuerListResult": { - "properties": { - "value": { + "dns_names": { "type": "array", + "description": "Domain names.", "items": { - "$ref": "#/definitions/CertificateIssuerItem" + "type": "string" }, - "readOnly": true, - "description": "A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers." + "x-ms-client-name": "dnsNames" }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "The URL to get the next set of certificate issuers." - } - }, - "description": "The certificate issuer list result." - }, - "PendingCertificateSigningRequestResult": { - "properties": { - "value": { - "type": "string", - "readOnly": true, - "description": "The pending certificate signing request as Base64 encoded string." + "upns": { + "type": "array", + "description": "User principal names.", + "items": { + "type": "string" + } } - }, - "description": "The pending certificate signing request result." + } }, - "CertificateRestoreParameters": { + "Trigger": { + "type": "object", + "description": "A condition to be satisfied for an action to be executed.", "properties": { - "value": { - "type": "string", - "x-ms-client-name": "certificateBundleBackup", - "format": "base64url", - "description": "The backup blob associated with a certificate bundle." + "lifetime_percentage": { + "type": "integer", + "format": "int32", + "description": "Percentage of lifetime at which to trigger. Value should be between 1 and 99.", + "minimum": 1, + "maximum": 99, + "x-ms-client-name": "lifetimePercentage" + }, + "days_before_expiry": { + "type": "integer", + "format": "int32", + "description": "Days before expiry to attempt renewal. Value should be between 1 and validity_in_months multiplied by 27. If validity_in_months is 36, then value should be between 1 and 972 (36 * 27).", + "x-ms-client-name": "daysBeforeExpiry" } - }, - "description": "The certificate restore parameters.", - "required": [ - "value" - ] + } }, - "BackupCertificateResult": { + "X509CertificateProperties": { + "type": "object", + "description": "Properties of the X509 component of a certificate.", "properties": { - "value": { + "subject": { "type": "string", - "format": "base64url", - "readOnly": true, - "description": "The backup blob containing the backed up certificate." + "description": "The subject name. Should be a valid X509 distinguished Name." + }, + "ekus": { + "type": "array", + "description": "The enhanced key usage.", + "items": { + "type": "string" + } + }, + "sans": { + "$ref": "#/definitions/SubjectAlternativeNames", + "description": "The subject alternative names.", + "x-ms-client-name": "subjectAlternativeNames" + }, + "key_usage": { + "type": "array", + "description": "Defines how the certificate's key may be used.", + "items": { + "$ref": "#/definitions/KeyUsageType" + }, + "x-ms-client-name": "keyUsage" + }, + "validity_months": { + "type": "integer", + "format": "int32", + "description": "The duration that the certificate is valid in months.", + "minimum": 0, + "x-ms-client-name": "ValidityInMonths" } - }, - "description": "The backup certificate result, containing the backup blob." + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupCertificate-example.json index fc194adfaca3..b07cfa1121a2 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupCertificate-example.json @@ -10,5 +10,7 @@ "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc" } } - } + }, + "operationId": "BackupCertificate", + "title": "BackupCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/CreateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/CreateCertificate-example.json index d626433a2ddc..97e24336efa5 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/CreateCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/CreateCertificate-example.json @@ -43,5 +43,7 @@ "request_id": "6faacd568ab049a2803861e8dd3ae21f" } } - } + }, + "operationId": "CreateCertificate", + "title": "CreateCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificate-example.json index 1430f9a6f0cc..9e96130ece09 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificate-example.json @@ -61,5 +61,7 @@ } } } - } + }, + "operationId": "DeleteCertificate", + "title": "DeleteCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateContacts-example.json index b6be48318fa1..9ece66e01ae3 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateContacts-example.json @@ -21,5 +21,7 @@ ] } } - } + }, + "operationId": "DeleteCertificateContacts", + "title": "DeleteCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateIssuer-example.json index 8f3ddf9ee435..4439b5d9c85d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateIssuer-example.json @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "DeleteCertificateIssuer", + "title": "DeleteCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateOperation-example.json index 8e2ec6190457..62740bef2260 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteCertificateOperation-example.json @@ -18,5 +18,7 @@ "request_id": "b88791e33d9c4d609d3e3cc3d2d40d11" } } - } + }, + "operationId": "DeleteCertificateOperation", + "title": "DeleteCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificate-example.json index da319429b6c2..b70fc0056698 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificate-example.json @@ -59,5 +59,7 @@ } } } - } + }, + "operationId": "GetCertificate", + "title": "GetCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateContacts-example.json index b6be48318fa1..3c1bc4af4e4e 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateContacts-example.json @@ -21,5 +21,7 @@ ] } } - } + }, + "operationId": "GetCertificateContacts", + "title": "GetCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuer-example.json index 8f3ddf9ee435..2a4873fbd82a 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuer-example.json @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "GetCertificateIssuer", + "title": "GetCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuers-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuers-example.json index 332bc8d9e34e..bf465e734db2 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuers-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateIssuers-example.json @@ -23,5 +23,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificateIssuers", + "title": "GetCertificateIssuers" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateOperation-example.json index dbc09888d1a7..b01ef1bb6cf3 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateOperation-example.json @@ -18,5 +18,7 @@ "request_id": "6faacd568ab049a2803861e8dd3ae21f" } } - } + }, + "operationId": "GetCertificateOperation", + "title": "GetCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificatePolicy-example.json index 60f5d5df99de..d56a56f8d5f7 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificatePolicy-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificatePolicy-example.json @@ -43,5 +43,7 @@ } } } - } + }, + "operationId": "GetCertificatePolicy", + "title": "GetCertificatePolicy" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateVersions-example.json index a0c244dd1ea1..7f563f24c30c 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateVersions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificateVersions-example.json @@ -34,5 +34,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificateVersions", + "title": "GetCertificateVersions" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificates-example.json index 7d37cad5176f..02eb4f29cf10 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificates-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetCertificates-example.json @@ -33,5 +33,7 @@ "nextLink": null } } - } + }, + "operationId": "GetCertificates", + "title": "GetCertificates" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificate-example.json index e665c6a8f87e..a74f0ee82e4a 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificate-example.json @@ -62,5 +62,7 @@ } } } - } + }, + "operationId": "GetDeletedCertificate", + "title": "GetDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificates-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificates-example.json index a702f0075e57..521d18e9ef49 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificates-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedCertificates-example.json @@ -27,5 +27,7 @@ "nextLink": "https://myvault.vault.azure.net:443/deletedcertificates?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1" } } - } + }, + "operationId": "GetDeletedCertificates", + "title": "GetDeletedCertificates" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ImportCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ImportCertificate-example.json index 2188d703f13c..602786bf8ce5 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ImportCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/ImportCertificate-example.json @@ -73,5 +73,7 @@ } } } - } + }, + "operationId": "ImportCertificate", + "title": "ImportCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/MergeCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/MergeCertificate-example.json index 4eda30ad4031..07cbebd5080b 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/MergeCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/MergeCertificate-example.json @@ -64,5 +64,7 @@ } } } - } + }, + "operationId": "MergeCertificate", + "title": "MergeCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedCertificate-example.json index 845e970e9b79..4ae5d56c7ad5 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedCertificate-example.json @@ -6,5 +6,7 @@ }, "responses": { "204": {} - } + }, + "operationId": "PurgeDeletedCertificate", + "title": "PurgeDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedCertificate-example.json index a3a5fdab687a..2dbd305ee5e8 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedCertificate-example.json @@ -58,5 +58,7 @@ } } } - } + }, + "operationId": "RecoverDeletedCertificate", + "title": "RecoverDeletedCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreCertificate-example.json index a37b4b55c6c0..8062b4739a2f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreCertificate-example.json @@ -66,5 +66,7 @@ } } } - } + }, + "operationId": "RestoreCertificate", + "title": "RestoreCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateContacts-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateContacts-example.json index 53aeabd413e6..9d9f8db73dc6 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateContacts-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateContacts-example.json @@ -35,5 +35,7 @@ ] } } - } + }, + "operationId": "SetCertificateContacts", + "title": "SetCertificateContacts" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateIssuer-example.json index c974770d5088..f9ae4051661d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetCertificateIssuer-example.json @@ -46,5 +46,7 @@ } } } - } + }, + "operationId": "SetCertificateIssuer", + "title": "SetCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificate-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificate-example.json index 3a396ca7226a..6d86530c7ece 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificate-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificate-example.json @@ -35,5 +35,7 @@ } } } - } + }, + "operationId": "UpdateCertificate", + "title": "UpdateCertificate" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateIssuer-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateIssuer-example.json index 104806e97a10..57e08df68ba5 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateIssuer-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateIssuer-example.json @@ -36,5 +36,7 @@ } } } - } + }, + "operationId": "UpdateCertificateIssuer", + "title": "UpdateCertificateIssuer" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateOperation-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateOperation-example.json index e52a7566ee87..38af43b5578f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateOperation-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificateOperation-example.json @@ -21,5 +21,7 @@ "request_id": "3dd81d528cc84c5a837c607f1a50f2e1" } } - } + }, + "operationId": "UpdateCertificateOperation", + "title": "UpdateCertificateOperation" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificatePolicy-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificatePolicy-example.json index 944dbd2eac38..eea6c430abb6 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificatePolicy-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateCertificatePolicy-example.json @@ -76,5 +76,7 @@ } } } - } + }, + "operationId": "UpdateCertificatePolicy", + "title": "UpdateCertificatePolicy" } diff --git a/specification/keyvault/data-plane/readme.md b/specification/keyvault/data-plane/readme.md index 953355a6c676..f15a8fedaecc 100644 --- a/specification/keyvault/data-plane/readme.md +++ b/specification/keyvault/data-plane/readme.md @@ -351,6 +351,15 @@ uncomment the `exclude-file` section below and add the file paths. ``` yaml directive: + - suppress: IntegerTypeMustHaveFormat + from: certificates.json + reason: KV uses format "unixtime", which is not supported by the linter at the moment. + - suppress: IntegerTypeMustHaveFormat + from: keys.json + reason: KV uses format "unixtime", which is not supported by the linter at the moment. + - suppress: IntegerTypeMustHaveFormat + from: secrets.json + reason: KV uses format "unixtime", which is not supported by the linter at the moment. - suppress: DefinitionsPropertiesNamesCamelCase from: certificates.json where: $.definitions.CertificateOperation.properties.cancellation_requested From cb78c4578918363f2b8c77af57b4d5c9ee9b1d6f Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:23:17 -0800 Subject: [PATCH 42/82] Sync eng/common directory with azure-sdk-tools for PR 9649 (#32191) * Filter out Excludes for PR Pipelines * Updates for feedback --------- Co-authored-by: James Suplizio --- .../steps/save-package-properties.yml | 9 +++++++-- eng/common/scripts/Generate-PR-Diff.ps1 | 13 ++++++++++++- eng/common/scripts/Package-Properties.ps1 | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/eng/common/pipelines/templates/steps/save-package-properties.yml b/eng/common/pipelines/templates/steps/save-package-properties.yml index 172191c272dc..5ac89da9cdee 100644 --- a/eng/common/pipelines/templates/steps/save-package-properties.yml +++ b/eng/common/pipelines/templates/steps/save-package-properties.yml @@ -14,6 +14,9 @@ parameters: - name: ScriptDirectory type: string default: eng/common/scripts + - name: ExcludePaths + type: object + default: [] steps: # There will be transitory period for every language repo where the - pullrequest build definition will run @@ -26,10 +29,12 @@ steps: - task: Powershell@2 displayName: Generate PR Diff inputs: - filePath: ${{ parameters.ScriptDirectory }}/Generate-PR-Diff.ps1 - arguments: > + targetType: inline + script: > + ${{ parameters.ScriptDirectory }}/Generate-PR-Diff.ps1 -TargetPath '${{ parameters.TargetPath }}' -ArtifactPath '${{ parameters.DiffDirectory }}' + -ExcludePaths ('${{ convertToJson(parameters.ExcludePaths) }}' | ConvertFrom-Json) pwsh: true # When running in PR mode, we want the detected changed services to be attached to the build as tags. diff --git a/eng/common/scripts/Generate-PR-Diff.ps1 b/eng/common/scripts/Generate-PR-Diff.ps1 index 355ef612540f..e010e176399d 100644 --- a/eng/common/scripts/Generate-PR-Diff.ps1 +++ b/eng/common/scripts/Generate-PR-Diff.ps1 @@ -16,7 +16,10 @@ Param ( [Parameter(Mandatory = $True)] [string] $ArtifactPath, [Parameter(Mandatory = $True)] - [string] $TargetPath + [string] $TargetPath, + [Parameter(Mandatory=$false)] + [AllowEmptyCollection()] + [array] $ExcludePaths ) . (Join-Path $PSScriptRoot "Helpers" "git-helpers.ps1") @@ -45,13 +48,21 @@ $changedFiles = @() $changedServices = @() $changedFiles = Get-ChangedFiles -DiffPath $TargetPath + if ($changedFiles) { $changedServices = Get-ChangedServices -ChangedFiles $changedFiles } +# ExcludePaths is an object array with the default of [] which evaluates to null. +# If the value is null, set it to empty list to ensure that the empty list is +# stored in the json +if (-not $ExcludePaths) { + $ExcludePaths = @() +} $result = [PSCustomObject]@{ "ChangedFiles" = $changedFiles "ChangedServices" = $changedServices + "ExcludePaths" = $ExcludePaths "PRNumber" = if ($env:SYSTEM_PULLREQUEST_PULLREQUESTNUMBER) { $env:SYSTEM_PULLREQUEST_PULLREQUESTNUMBER } else { "-1" } } diff --git a/eng/common/scripts/Package-Properties.ps1 b/eng/common/scripts/Package-Properties.ps1 index 1784521252df..bc7b5738e2d3 100644 --- a/eng/common/scripts/Package-Properties.ps1 +++ b/eng/common/scripts/Package-Properties.ps1 @@ -162,6 +162,14 @@ function Get-PrPkgProperties([string]$InputDiffJson) { $allPackageProperties = Get-AllPkgProperties $diff = Get-Content $InputDiffJson | ConvertFrom-Json $targetedFiles = $diff.ChangedFiles + # The exclude paths and the targeted files paths aren't full OS paths, they're + # GitHub paths meaning they're relative to the repo root and slashes are forward + # slashes "/". The ExcludePaths need to have a trailing slash added in order + # correctly test for string matches without overmatching. For example, if a pr + # had files sdk/foo/file1 and sdk/foobar/file2 with the exclude of anything in + # sdk/foo, it should only exclude things under sdk/foo. The TrimEnd is just in + # case one of the paths ends with a slash, it doesn't add a second one. + $excludePaths = $diff.ExcludePaths | ForEach-Object { $_.TrimEnd("/") + "/" } $additionalValidationPackages = @() $lookup = @{} @@ -172,6 +180,16 @@ function Get-PrPkgProperties([string]$InputDiffJson) { $lookup[$lookupKey] = $pkg foreach ($file in $targetedFiles) { + $shouldExclude = $false + foreach ($exclude in $excludePaths) { + if ($file.StartsWith($exclude,'CurrentCultureIgnoreCase')) { + $shouldExclude = $true + break + } + } + if ($shouldExclude) { + continue + } $filePath = (Join-Path $RepoRoot $file) $shouldInclude = $filePath -like (Join-Path "$pkgDirectory" "*") if ($shouldInclude) { From a8c0444b610612055f17fdcc2f746019e9667e7a Mon Sep 17 00:00:00 2001 From: Christopher Radek <14189820+chrisradek@users.noreply.github.com> Date: Thu, 16 Jan 2025 12:41:42 -0800 Subject: [PATCH 43/82] Update TypeSpec version for January 2025 release (#32185) Co-authored-by: Christopher Radek --- package-lock.json | 2016 +++++++++++++++++---------------------------- package.json | 28 +- 2 files changed, 790 insertions(+), 1254 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5e79ca1f086..d933995992c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,23 +7,23 @@ "name": "azure-rest-api-specs", "devDependencies": { "@azure-tools/typespec-apiview": "0.5.0", - "@azure-tools/typespec-autorest": "0.49.0", - "@azure-tools/typespec-azure-core": "0.49.0", - "@azure-tools/typespec-azure-portal-core": "0.49.0", - "@azure-tools/typespec-azure-resource-manager": "0.49.0", - "@azure-tools/typespec-azure-rulesets": "0.49.0", + "@azure-tools/typespec-autorest": "0.50.0", + "@azure-tools/typespec-azure-core": "0.50.0", + "@azure-tools/typespec-azure-portal-core": "0.50.0", + "@azure-tools/typespec-azure-resource-manager": "0.50.0", + "@azure-tools/typespec-azure-rulesets": "0.50.0", "@azure-tools/typespec-client-generator-cli": "0.15.1", - "@azure-tools/typespec-client-generator-core": "0.49.1", + "@azure-tools/typespec-client-generator-core": "0.50.0", "@azure-tools/typespec-liftr-base": "0.6.0", "@azure/avocado": "^0.9.1", - "@typespec/compiler": "0.63.0", - "@typespec/http": "0.63.0", - "@typespec/openapi": "0.63.0", - "@typespec/openapi3": "0.63.0", - "@typespec/prettier-plugin-typespec": "0.63.0", - "@typespec/rest": "0.63.1", - "@typespec/streams": "0.63.0", - "@typespec/versioning": "0.63.0", + "@typespec/compiler": "0.64.0", + "@typespec/http": "0.64.0", + "@typespec/openapi": "0.64.0", + "@typespec/openapi3": "0.64.0", + "@typespec/prettier-plugin-typespec": "0.64.0", + "@typespec/rest": "0.64.0", + "@typespec/streams": "0.64.0", + "@typespec/versioning": "0.64.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.5.1", "prettier": "~3.3.3", @@ -35,7 +35,6 @@ } }, "eng/tools": { - "name": "azure-rest-api-specs-eng-tools", "dev": true, "hasInstallScript": true, "devDependencies": { @@ -48,11 +47,10 @@ } }, "eng/tools/node_modules/@types/node": { - "version": "18.19.68", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", - "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "version": "18.19.71", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.71.tgz", + "integrity": "sha512-evXpcgtZm8FY4jqBSN8+DmOTcVkkvTmAayeo4Wf3m1xAruyVGzGuDh/Fb/WWX2yLItUiho42ozyJjB0dw//Tkw==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -62,7 +60,6 @@ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.8.tgz", "integrity": "sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^0.2.3", @@ -95,7 +92,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -105,7 +101,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -120,15 +115,13 @@ "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true, - "license": "MIT" + "dev": true }, "eng/tools/node_modules/vite": { "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -188,7 +181,6 @@ "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/expect": "2.1.8", "@vitest/mocker": "2.1.8", @@ -254,7 +246,6 @@ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", @@ -277,7 +268,6 @@ } }, "eng/tools/sdk-suppressions": { - "name": "@azure-tools/sdk-suppressions", "version": "1.0.0", "dev": true, "dependencies": { @@ -300,7 +290,6 @@ } }, "eng/tools/specs-model": { - "name": "@azure-tools/specs-model", "dev": true, "bin": { "get-specs-model": "cmd/get-specs-model.js" @@ -322,7 +311,6 @@ } }, "eng/tools/suppressions": { - "name": "@azure-tools/suppressions", "dev": true, "dependencies": { "minimatch": "^9.0.4", @@ -344,7 +332,6 @@ } }, "eng/tools/tsp-client-tests": { - "name": "@azure-tools/tsp-client-tests", "dev": true, "devDependencies": { "@types/node": "^18.19.31", @@ -357,7 +344,6 @@ } }, "eng/tools/typespec-requirement": { - "name": "@azure-tools/typespec-requirement", "dev": true, "devDependencies": { "@types/node": "^18.19.31", @@ -370,7 +356,6 @@ } }, "eng/tools/typespec-validation": { - "name": "@azure-tools/typespec-validation", "dev": true, "dependencies": { "globby": "^14.0.1", @@ -396,7 +381,6 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -410,7 +394,6 @@ "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", "dev": true, - "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -423,7 +406,6 @@ "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -432,15 +414,13 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@apidevtools/swagger-parser": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", "dev": true, - "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.6", "@apidevtools/openapi-schemas": "^2.0.4", @@ -471,7 +451,6 @@ "resolved": "https://registry.npmjs.org/@autorest/core/-/core-3.10.3.tgz", "integrity": "sha512-cJUIfuwfxel22AY1o8O3v7vkoa2tskkxOGYEGBICdaIWk5lhyd27THWRFoqWZlsNWTZZD7qpSVfU0xFaShvoSg==", "dev": true, - "license": "MIT", "bin": { "autorest-core": "entrypoints/app.js", "autorest-language-service": "entrypoints/language-service.js" @@ -519,6 +498,249 @@ "prettier": "~3.1.0" } }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-autorest": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.49.0.tgz", + "integrity": "sha512-stwfhmEc3yPeXbM8yfLKVCtaX5mR0H+sL74Xy/eMdEWoJgiE3aJxkgRWESu/7/vo99vugzo/HRwIEO5ELnyfRg==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.49.0", + "@azure-tools/typespec-azure-resource-manager": "~0.49.0", + "@azure-tools/typespec-client-generator-core": "~0.49.0", + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0", + "@typespec/openapi": "~0.63.0", + "@typespec/rest": "~0.63.0", + "@typespec/versioning": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-azure-core": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.49.0.tgz", + "integrity": "sha512-hNKy+aePmPkB1brHQkO1tsJXqXPzt/9ehy10dv0rKdp9xq5dE3yBctHF5Aj3Nr8kr8GRG5z4KYpYPbV5guoT5w==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0", + "@typespec/rest": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-azure-resource-manager": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.49.0.tgz", + "integrity": "sha512-1xWuG8OBJDykYM6BFD2owV9WH+oC32zt7XteXA0T4nH2T+D+sEFKppkCOMtIjX7ENBAlecmbdwgSNTZYQf4vaw==", + "dev": true, + "dependencies": { + "change-case": "~5.4.4", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.49.0", + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0", + "@typespec/openapi": "~0.63.0", + "@typespec/rest": "~0.63.0", + "@typespec/versioning": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@azure-tools/typespec-client-generator-core": { + "version": "0.49.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.49.1.tgz", + "integrity": "sha512-uAzlkYfL73lp1BnP8HMcIcS8iud7UnQzw6bf6FCUkKFO1B6wDwcvut3HfTtUj1kvw0XkiVJ0NkcxT0Dz0cylpQ==", + "dev": true, + "peer": true, + "dependencies": { + "change-case": "~5.4.4", + "pluralize": "^8.0.0", + "yaml": "~2.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.49.0", + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0", + "@typespec/openapi": "~0.63.0", + "@typespec/rest": "~0.63.0", + "@typespec/versioning": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/compiler": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.63.0.tgz", + "integrity": "sha512-cC3YniwbFghn1fASX3r1IgNjMrwaY4gmzznkHT4f/NxE+HK4XoXWn4EG7287QgVMCaHUykzJCIfW9k7kIleW5A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "~7.25.7", + "ajv": "~8.17.1", + "change-case": "~5.4.4", + "globby": "~14.0.2", + "mustache": "~4.2.0", + "picocolors": "~1.1.1", + "prettier": "~3.3.3", + "prompts": "~2.4.2", + "semver": "^7.6.3", + "temporal-polyfill": "^0.2.5", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.12", + "yaml": "~2.5.1", + "yargs": "~17.7.2" + }, + "bin": { + "tsp": "cmd/tsp.js", + "tsp-server": "cmd/tsp-server.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/compiler/node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/http": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.63.0.tgz", + "integrity": "sha512-SYVbBmLPAPdWZfdMs0QlbpTnFREDnkINu2FR+0kRX12qzbRgpRbLsdhg59qx4TfKoh4IAPgSV+Fq84w7BWGsyQ==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0", + "@typespec/streams": "~0.63.0" + }, + "peerDependenciesMeta": { + "@typespec/streams": { + "optional": true + } + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/openapi": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.63.0.tgz", + "integrity": "sha512-/KzR60mj3P/LnNWd/QfH0KTN/If4+mjrsWNSB7/uab6c8Qu/lNsGlZDkmWq4EFiwBR7VmpdFz9FP7d/m3O+tGw==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/openapi3": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.63.0.tgz", + "integrity": "sha512-HC8VeakPznXNn7euAyAxUFNsOcfSzM8tQwYPNUMWs0qGJqGgb6vjf5rShQmfgrCe5Y6zcMM2PPBuxaFV3xXYLw==", + "dev": true, + "dependencies": { + "@readme/openapi-parser": "~2.6.0", + "openapi-types": "~12.1.3", + "yaml": "~2.5.1" + }, + "bin": { + "tsp-openapi3": "cmd/tsp-openapi3.js" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0", + "@typespec/openapi": "~0.63.0", + "@typespec/versioning": "~0.63.0" + }, + "peerDependenciesMeta": { + "@typespec/xml": { + "optional": true + } + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/prettier-plugin-typespec": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/prettier-plugin-typespec/-/prettier-plugin-typespec-0.63.0.tgz", + "integrity": "sha512-ZVnTk1B/8EzqDjHbhkicP8lH5Zj+R7Ft0wv4N34Au3SzxNFCNMzMKuA+ie3GsbQYrYi3T7gBiotW+Xt0lPKSOA==", + "dev": true, + "dependencies": { + "prettier": "~3.3.3" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/prettier-plugin-typespec/node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/rest": { + "version": "0.63.1", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.63.1.tgz", + "integrity": "sha512-RQbTM+HGjCaNIWC0v72m5ulnuvLjuRigb7pH4QeRCvFtGPHos+WBv5SImkGrbYx3353OGR8dIi7lWe7aNwiDcQ==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0", + "@typespec/http": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/streams": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.63.0.tgz", + "integrity": "sha512-4vEd5jdpdaY2i9CDHwSRuiUNCJr+M/gUCwNsaGWgsJdrfR/lx8WX3Y27KcRDNVcRQF7nsOR4i28r4siWqrTM4w==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0" + } + }, + "node_modules/@autorest/openapi-to-typespec/node_modules/@typespec/versioning": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.63.0.tgz", + "integrity": "sha512-BPvmPL+g20yEmSA8XRfbIHdToNOjssq4QfwOU6D7kKLLXnZHFb1hmuwW0tf0Wa/lYgoaUC60ONAeoXgNT1ZOIQ==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0" + } + }, "node_modules/@autorest/openapi-to-typespec/node_modules/prettier": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", @@ -534,12 +756,23 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/@autorest/openapi-to-typespec/node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@autorest/schemas": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@autorest/schemas/-/schemas-1.3.5.tgz", "integrity": "sha512-HUP89Ns/4vDGcMtmFt/fxu+QqKvit/IQ8oBTQjzC6RnJojF+880KoEgTuweTuea2stzRmNyuMiBu4F8AnxdyUA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/@azure-tools/async-io": { "version": "3.0.254", @@ -573,7 +806,6 @@ "resolved": "https://registry.npmjs.org/@azure-tools/openapi-tools-common/-/openapi-tools-common-1.2.2.tgz", "integrity": "sha512-r6oBkNsND1sA+ZjHlE1vTf2hUj4RUnbD9KG9uksEKnLVC6oOD5WuJYCO5y4xDzWWuR0x+9gImovQqXAE7ZXYfg==", "dev": true, - "license": "MIT", "dependencies": { "@types/async-retry": "^1.4.1", "@types/commonmark": "^0.27.3", @@ -590,7 +822,6 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "entities": "~ 1.1.1", "mdurl": "~ 1.0.1", @@ -608,15 +839,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/@azure-tools/openapi-tools-common/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -633,11 +862,10 @@ } }, "node_modules/@azure-tools/rest-api-diff": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@azure-tools/rest-api-diff/-/rest-api-diff-0.1.7.tgz", - "integrity": "sha512-RJ4JHGpBlFnpQAOHTtyvXz01PPwd0LHXvrujIhl9vvCqcbWMx9GeiSLAxWVWsvw52im26wgSb9oXaMrgt2NFbg==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@azure-tools/rest-api-diff/-/rest-api-diff-0.1.8.tgz", + "integrity": "sha512-P44zSxUjmaz+/l9pWDDmHtTRga4mv+rG5TIFTqCuI39JwdLvPTDHZvcMgAhMMyE+fcL4MTTeRx0IJkZk8ovZlg==", "dev": true, - "license": "MIT", "dependencies": { "@azure-tools/typespec-autorest": ">=0.44.0, <1.0.0", "@azure-tools/typespec-azure-core": ">=0.44.0, <1.0.0", @@ -700,57 +928,53 @@ } }, "node_modules/@azure-tools/typespec-autorest": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.49.0.tgz", - "integrity": "sha512-stwfhmEc3yPeXbM8yfLKVCtaX5mR0H+sL74Xy/eMdEWoJgiE3aJxkgRWESu/7/vo99vugzo/HRwIEO5ELnyfRg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.50.0.tgz", + "integrity": "sha512-CYzqN11NGU2HNJcycph7HCpjQoOR+XzyySDi6Z6rsXhZa/XTPDYJtmGHNVHXYGgvxJPxPJ9jm13DiLf/ReJnSA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.49.0", - "@azure-tools/typespec-azure-resource-manager": "~0.49.0", - "@azure-tools/typespec-client-generator-core": "~0.49.0", - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0", - "@typespec/openapi": "~0.63.0", - "@typespec/rest": "~0.63.0", - "@typespec/versioning": "~0.63.0" + "@azure-tools/typespec-azure-core": "~0.50.0", + "@azure-tools/typespec-azure-resource-manager": "~0.50.0", + "@azure-tools/typespec-client-generator-core": "~0.50.0", + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0", + "@typespec/openapi": "~0.64.0", + "@typespec/rest": "~0.64.0", + "@typespec/versioning": "~0.64.0" } }, "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.49.0.tgz", - "integrity": "sha512-hNKy+aePmPkB1brHQkO1tsJXqXPzt/9ehy10dv0rKdp9xq5dE3yBctHF5Aj3Nr8kr8GRG5z4KYpYPbV5guoT5w==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.50.0.tgz", + "integrity": "sha512-6kUhWNQc4Btgx7rIbx3dubBLst73qv04dGWg0yNoVi86iIXy+8wr4ee6pgk+niMsZDeHEBEWeeLy9VwCg3MgTg==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0", - "@typespec/rest": "~0.63.0" + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0", + "@typespec/rest": "~0.64.0" } }, "node_modules/@azure-tools/typespec-azure-portal-core": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-portal-core/-/typespec-azure-portal-core-0.49.0.tgz", - "integrity": "sha512-PjfexSUXpjoLip8h6TaJlaJe3rmC396GvvTvW2ZFucsSKHe4CoHlW2gnBjkyvnDBvkuPsayx+HNhDDcs6Dcl7Q==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-portal-core/-/typespec-azure-portal-core-0.50.0.tgz", + "integrity": "sha512-i1J7dNxgLGOW4mI6k4EQuqQTJO0hKHbc/rRR0TIW3mp1YteOza59YYUKm25relHErBnrgx6P/PX+jsc51BaRfA==", "dev": true, - "license": "MIT", "peerDependencies": { - "@azure-tools/typespec-azure-resource-manager": "~0.49.0", - "@typespec/compiler": "~0.63.0" + "@azure-tools/typespec-azure-resource-manager": "~0.50.0", + "@typespec/compiler": "~0.64.0" } }, "node_modules/@azure-tools/typespec-azure-resource-manager": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.49.0.tgz", - "integrity": "sha512-1xWuG8OBJDykYM6BFD2owV9WH+oC32zt7XteXA0T4nH2T+D+sEFKppkCOMtIjX7ENBAlecmbdwgSNTZYQf4vaw==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.50.0.tgz", + "integrity": "sha512-ekLAyPyy9eMMqdi3pj3g+iw9NNiK6ObDIU/W/bwSBSPwN2Po9d46fb65vcsjPeEkBceeRIPP6p54QtG9JYhSfg==", "dev": true, - "license": "MIT", "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0" @@ -759,28 +983,27 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.49.0", - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0", - "@typespec/openapi": "~0.63.0", - "@typespec/rest": "~0.63.0", - "@typespec/versioning": "~0.63.0" + "@azure-tools/typespec-azure-core": "~0.50.0", + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0", + "@typespec/openapi": "~0.64.0", + "@typespec/rest": "~0.64.0", + "@typespec/versioning": "~0.64.0" } }, "node_modules/@azure-tools/typespec-azure-rulesets": { - "version": "0.49.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.49.0.tgz", - "integrity": "sha512-qKynK3lp+eqlt6QPGFSptrt9uqJUfeuv6yVXYDuaX1Jqu7tbTAgGf0HtN8mqPzfu3eAb84bdq6VgNspxyXLDOg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.50.0.tgz", + "integrity": "sha512-b2YjhaUqPxk53eswZKPzK1IzTJJe/AD+Yi/G15+fiar7oozQJtZpe7ysrSsknzKEoy92iiknsIVa5giRie0ATg==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.49.0", - "@azure-tools/typespec-azure-resource-manager": "~0.49.0", - "@azure-tools/typespec-client-generator-core": "~0.49.0", - "@typespec/compiler": "~0.63.0" + "@azure-tools/typespec-azure-core": "~0.50.0", + "@azure-tools/typespec-azure-resource-manager": "~0.50.0", + "@azure-tools/typespec-client-generator-core": "~0.50.0", + "@typespec/compiler": "~0.64.0" } }, "node_modules/@azure-tools/typespec-client-generator-cli": { @@ -814,9 +1037,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.49.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.49.1.tgz", - "integrity": "sha512-uAzlkYfL73lp1BnP8HMcIcS8iud7UnQzw6bf6FCUkKFO1B6wDwcvut3HfTtUj1kvw0XkiVJ0NkcxT0Dz0cylpQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.50.0.tgz", + "integrity": "sha512-Zk62SZb6W5neTtajcQAKll4zYSf3aKaMEDLymMTajXTsWxAlrb7sqnc8vTZWSIymaRI0A9olEL2luw9OLywUYA==", "dev": true, "dependencies": { "change-case": "~5.4.4", @@ -827,12 +1050,12 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.49.0", - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0", - "@typespec/openapi": "~0.63.0", - "@typespec/rest": "~0.63.0", - "@typespec/versioning": "~0.63.0" + "@azure-tools/typespec-azure-core": "~0.50.0", + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0", + "@typespec/openapi": "~0.64.0", + "@typespec/rest": "~0.64.0", + "@typespec/versioning": "~0.64.0" } }, "node_modules/@azure-tools/typespec-client-generator-core/node_modules/yaml": { @@ -840,7 +1063,6 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", "dev": true, - "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -867,7 +1089,6 @@ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, @@ -880,7 +1101,6 @@ "resolved": "https://registry.npmjs.org/@azure/avocado/-/avocado-0.9.1.tgz", "integrity": "sha512-cnVDCL0uPnJTGp3wrhv0k7lXCPABbfcXT36Hf3jwSSXuWNQlQEvgZ/wR2kcZFsMnmMCaHWn5o7aTU3lOPFQ7Mg==", "dev": true, - "license": "MIT", "dependencies": { "@azure/openapi-markdown": "^0.9.4", "@azure/swagger-validation-common": "^0.0.5", @@ -912,7 +1132,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -922,7 +1141,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -932,7 +1150,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -944,7 +1161,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -958,7 +1174,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -971,7 +1186,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -985,15 +1199,13 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/@azure/avocado/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -1016,7 +1228,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -1030,7 +1241,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz", "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==", "dev": true, - "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-util": "^1.11.0", @@ -1046,7 +1256,6 @@ "integrity": "sha512-T8r2q/c3DxNu6mEJfPuJtptUVqwchxzjj32gKcnMi06rdiVONS9rar7kT9T2Am+XvER7uOzpsP79WsqNbdgdWg==", "deprecated": "This package is no longer supported. Please refer to https://github.com/Azure/azure-sdk-for-js/blob/490ce4dfc5b98ba290dee3b33a6d0876c5f138e2/sdk/core/README.md", "dev": true, - "license": "MIT", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.3.0", @@ -1072,7 +1281,6 @@ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.2.0" }, @@ -1085,7 +1293,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", "dev": true, - "license": "MIT", "dependencies": { "@opentelemetry/api": "^1.0.1", "tslib": "^2.2.0" @@ -1099,7 +1306,6 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1116,11 +1322,10 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.18.1.tgz", - "integrity": "sha512-/wS73UEDrxroUEVywEm7J0p2c+IIiVxyfigCGfsKvCxxCET4V/Hef2aURqltrXMRjNmdmt5IuOgIpl8f6xdO5A==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.18.2.tgz", + "integrity": "sha512-IkTf/DWKyCklEtN/WYW3lqEsIaUDshlzWRlZNNwSYtFcCBQz++OtOjxNpm8rr1VcbMS6RpjybQa3u6B6nG0zNw==", "dev": true, - "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.8.0", @@ -1140,7 +1345,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz", "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, @@ -1153,7 +1357,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.11.0.tgz", "integrity": "sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==", "dev": true, - "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", "tslib": "^2.6.2" @@ -1167,7 +1370,6 @@ "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz", "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, @@ -1180,7 +1382,6 @@ "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz", "integrity": "sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==", "dev": true, - "license": "MIT", "dependencies": { "@azure/core-auth": "^1.1.4", "abort-controller": "^3.0.0", @@ -1197,7 +1398,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -1213,7 +1413,6 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1233,15 +1432,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/@azure/openapi-markdown": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/@azure/openapi-markdown/-/openapi-markdown-0.9.4.tgz", "integrity": "sha512-QBxabmf+64mQuyWRLsBoLKdvB7PH2U9RsyQMekorl17DOVEkgQxMsQdL/WMlz/V2wMyiI433FlrbdUiiFapfKg==", "dev": true, - "license": "MIT", "dependencies": { "@ts-common/commonmark-to-markdown": "^2.0.2", "@ts-common/iterator": "^0.3.1", @@ -1256,15 +1453,13 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@azure/openapi-markdown/node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -1274,7 +1469,6 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "entities": "~ 1.1.1", "mdurl": "~ 1.0.1", @@ -1292,15 +1486,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/@azure/openapi-markdown/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1313,22 +1505,19 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/@azure/swagger-validation-common": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/@azure/swagger-validation-common/-/swagger-validation-common-0.0.5.tgz", "integrity": "sha512-oc6OHLdoLlOpO5GjMcOFETEhJi45CI3MVIhvVY/yqyGw9AtaqOYw5HzO3wTuYgYFeGS4v9iqFah0SNLZrpk3Sg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@babel/code-frame": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz", "integrity": "sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.25.9", "picocolors": "^1.0.0" @@ -1342,7 +1531,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1352,7 +1540,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1362,7 +1549,6 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", @@ -1378,7 +1564,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -1391,7 +1576,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1402,13 +1586,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1422,7 +1605,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dev": true, - "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1431,11 +1613,10 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -1448,15 +1629,13 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -1467,7 +1646,6 @@ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dev": true, - "license": "MIT", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -1482,7 +1660,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" @@ -1499,7 +1676,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -1516,7 +1692,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -1533,7 +1708,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -1550,7 +1724,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -1567,7 +1740,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -1584,7 +1756,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -1601,7 +1772,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -1618,7 +1788,6 @@ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1635,7 +1804,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1652,7 +1820,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1669,7 +1836,6 @@ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1686,7 +1852,6 @@ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1703,7 +1868,6 @@ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1720,7 +1884,6 @@ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1737,7 +1900,6 @@ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1754,7 +1916,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1771,7 +1932,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -1788,7 +1948,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1805,7 +1964,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -1822,7 +1980,6 @@ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1839,7 +1996,6 @@ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1856,7 +2012,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -1870,7 +2025,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -1889,7 +2043,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1902,7 +2055,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1912,7 +2064,6 @@ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", @@ -1923,11 +2074,10 @@ } }, "node_modules/@eslint/core": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", - "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -1940,7 +2090,6 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1964,7 +2113,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1980,15 +2128,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -1998,18 +2144,17 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", - "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, - "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -2021,15 +2166,13 @@ "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-5.5.3.tgz", "integrity": "sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw==", "deprecated": "Please update to a newer version.", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -2039,7 +2182,6 @@ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" @@ -2053,7 +2195,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -2067,7 +2208,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2081,7 +2221,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.10.0" } @@ -2091,7 +2230,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -2105,7 +2243,6 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2123,7 +2260,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -2136,7 +2272,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -2148,15 +2283,13 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2174,7 +2307,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2190,7 +2322,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2208,7 +2339,6 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -2218,7 +2348,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2233,7 +2362,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2243,7 +2371,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2252,15 +2379,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2270,15 +2395,13 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jsep-plugin/assignment": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -2291,7 +2414,6 @@ "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -2304,7 +2426,6 @@ "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.1.1" } @@ -2313,15 +2434,13 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2335,7 +2454,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -2345,7 +2463,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2359,7 +2476,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } @@ -2369,7 +2485,6 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -2380,7 +2495,6 @@ "resolved": "https://registry.npmjs.org/@postman/form-data/-/form-data-3.1.1.tgz", "integrity": "sha512-vjh8Q2a8S6UCm/KKs31XFJqEEgmbjBmpPNVV2eVav6905wyFAwaUOBGA1NPBI4ERH9MMZc6w0umFgM6WbEPMdg==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2395,7 +2509,6 @@ "resolved": "https://registry.npmjs.org/@postman/tough-cookie/-/tough-cookie-4.1.3-postman.1.tgz", "integrity": "sha512-txpgUqZOnWYnUHZpHjkfb0IwVH4qJmyq77pPnJLlfhMtdCLMFTEeQHlzQiK906aaNCe4NEB5fGJHo9uzGbFMeA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -2411,7 +2524,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -2421,7 +2533,6 @@ "resolved": "https://registry.npmjs.org/@postman/tunnel-agent/-/tunnel-agent-0.6.4.tgz", "integrity": "sha512-CJJlq8V7rNKhAw4sBfjixKpJW00SHqebqNUQKxMoepgeWZIbdPcD+rguRcivGhS4N12PymDcKgUgSD4rVC+RjQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -2434,7 +2545,6 @@ "resolved": "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-1.6.0.tgz", "integrity": "sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.16.0", "@babel/runtime": "^7.21.0", @@ -2456,7 +2566,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2473,7 +2582,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -2483,7 +2591,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2496,7 +2603,6 @@ "resolved": "https://registry.npmjs.org/@readme/json-schema-ref-parser/-/json-schema-ref-parser-1.2.0.tgz", "integrity": "sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==", "dev": true, - "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -2509,7 +2615,6 @@ "resolved": "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-2.6.0.tgz", "integrity": "sha512-pyFJXezWj9WI1O+gdp95CoxfY+i+Uq3kKk4zXIFuRAZi9YnHpHOpjumWWr67wkmRTw19Hskh9spyY0Iyikf3fA==", "dev": true, - "license": "MIT", "dependencies": { "@apidevtools/swagger-methods": "^3.0.2", "@jsdevtools/ono": "^7.1.3", @@ -2532,272 +2637,252 @@ "resolved": "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz", "integrity": "sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz", - "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", + "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz", - "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", + "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz", - "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", + "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz", - "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", + "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz", - "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", + "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz", - "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", + "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz", - "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", + "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz", - "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", + "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz", - "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", + "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz", - "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", + "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz", - "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", + "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz", - "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", + "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz", - "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", + "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz", - "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", + "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", - "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", + "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz", - "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", + "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz", - "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", + "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz", - "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", + "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz", - "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", + "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -2807,15 +2892,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -2828,7 +2911,6 @@ "resolved": "https://registry.npmjs.org/@ts-common/add-position/-/add-position-0.0.2.tgz", "integrity": "sha512-ENfIN5410jyxqXbQZXmj1ifFPjnhXOuJdQjglDXhLR8vyD74PTUz277BN9Voua2DKeOjlAnyBK7ml1ciMsBqhw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/iterator": "^0.3.5" } @@ -2837,15 +2919,13 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/async-iterator": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@ts-common/async-iterator/-/async-iterator-0.2.3.tgz", "integrity": "sha512-szLdrutwQxBCIECaO2RTFcUPFj+9QVk4xKAj+APgeeLoEs67tNjXFgvfU0kOfF04qTHlPNPqcutSqxMHqzG3qA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/iterator": "^0.3.6", "tslib": "^1.10.0" @@ -2855,22 +2935,19 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/async-iterator/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/@ts-common/commonmark-to-markdown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@ts-common/commonmark-to-markdown/-/commonmark-to-markdown-2.0.2.tgz", "integrity": "sha512-gLUxc7phOvWiDavHDshU3JGxKsepSCYAuXpMVxU0j6MDah2EbV3y0UA4x1wHkWmlf7bVuDLcnsiYQttqEX1zQw==", "dev": true, - "license": "MIT", "dependencies": { "@ts-common/iterator": "^1.1.1", "@types/commonmark": "^0.27.3", @@ -2883,7 +2960,6 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha512-PklsZ9pgrfFQ5hQH9BRzoWnqI9db2LeR9MhvkNk8iz97kfaTNmhTU+IE8jKDHTEfivZZXoFqzGqzddXdk14EJw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "entities": "~ 1.1.1", "mdurl": "~ 1.0.1", @@ -2901,15 +2977,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/@ts-common/fs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@ts-common/fs/-/fs-0.2.0.tgz", "integrity": "sha512-ul1v4ZatcHuAzrwr/hGjSbk37pnfnLYDWC1yMEynQlnV8ndAcIVNYwQPPOYtLADPKTi3y74g5Q4BF3xPurDHLA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/async-iterator": "^0.2.0", "@types/node": "^10.12.18", @@ -2920,15 +2994,13 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/@ts-common/iterator": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-1.1.2.tgz", "integrity": "sha512-edwrL2/efx3uphxuSEI7fCHJENFmTg+gR7TY8ruTRxNWIWc240YSg+v4T3qVAtgG8npwRC4QtQDu72hi8mrR5A==", "dev": true, - "license": "MIT", "peerDependencies": { "tslib": "^2.3.1" } @@ -2938,7 +3010,6 @@ "resolved": "https://registry.npmjs.org/@ts-common/json/-/json-0.3.1.tgz", "integrity": "sha512-vaplNdZPdeWr4p+hLJGdn08UMTSgYQrlRtxrAS0fAWyMlmFalBm/XRhHnohgiflRaj2jxl7ZxihjNlC/LZ/1YQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/iterator": "^0.3.1", "@ts-common/string-map": "^0.3.0" @@ -2949,7 +3020,6 @@ "resolved": "https://registry.npmjs.org/@ts-common/json-parser/-/json-parser-0.9.0.tgz", "integrity": "sha512-how0z/Ak7Bay+feIYfJFVV8UMw8Ky2Czoo5XwN7QigCOlN4HyW6wSNup4zrZ7t6NUB0002tW/+IOKCH2lAVJOg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/add-position": "0.0.2", "@ts-common/iterator": "^0.3.5", @@ -2963,36 +3033,31 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/json-parser/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/@ts-common/json/node_modules/@ts-common/iterator": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/property-set": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@ts-common/property-set/-/property-set-0.1.0.tgz", "integrity": "sha512-Mw/CPiksQI/Tvp8/bmne6ZYmOcgHuMOrflairbzdpfgMz7lrINFu8PyDQw6yTnIASeZR4yW0xljb66gCE4Jj0w==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/source-map": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@ts-common/source-map/-/source-map-0.5.0.tgz", "integrity": "sha512-aKFWvuN5uALt+hUtkPA4gHjtloDy2qHW1FB1r758KCTI0h0lP3dNJGcfwg7NnmD0qKQiZAY/J73/NYrbuTfT3A==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/iterator": "^0.3.0", "@ts-common/json": "^0.3.0", @@ -3004,15 +3069,13 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/string-map": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@ts-common/string-map/-/string-map-0.3.0.tgz", "integrity": "sha512-tikHtQPV/R48VAnlolyl1FIHciror68LXyruelvYf+lRE6ysjIGB2iNyw7wN6aDcUs2wN/CD6fF8Ye7lVIWNTQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/iterator": "^0.3.0" } @@ -3021,15 +3084,13 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/virtual-fs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@ts-common/virtual-fs/-/virtual-fs-0.3.0.tgz", "integrity": "sha512-ryoXw52FTLhiexoNBA/hcAlW8gxPhrKEuZODgpCiF0wswNJdg/j+rCb9k1VppJdeIJ30b0Wg+2vPsrOrdnYTIw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@ts-common/fs": "^0.2.0", "@ts-common/iterator": "^0.3.0", @@ -3043,15 +3104,13 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@ts-common/iterator/-/iterator-0.3.6.tgz", "integrity": "sha512-nNdcleTj3qLlchH17HI/xqOc6sNgOqJ5DdRR0nOEVdJVZCo5bfqoQTu6+Q9ZwMhuETuR2d86MSlmaL2FVHnPjQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@ts-common/virtual-fs/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -3071,15 +3130,13 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.5.tgz", "integrity": "sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/async-retry": { "version": "1.4.9", "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.9.tgz", "integrity": "sha512-s1ciZQJzRh3708X/m3vPExr5KJlzlZJvXsKpbtE2luqNcbROr64qU+3KpJsYHqWMeaxI839OvXf9PrUSw1Xtyg==", "dev": true, - "license": "MIT", "dependencies": { "@types/retry": "*" } @@ -3088,15 +3145,13 @@ "version": "0.27.9", "resolved": "https://registry.npmjs.org/@types/commonmark/-/commonmark-0.27.9.tgz", "integrity": "sha512-d3+57WgyPCcIc6oshmcPkmP4+JqRRot9eeZLsBsutWtIxwWivpoyc2wEcolOp8MyO3ZWN846mMdoR02kdHSMCw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -3107,7 +3162,6 @@ "resolved": "https://registry.npmjs.org/@types/eslint__js/-/eslint__js-8.42.3.tgz", "integrity": "sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint": "*" } @@ -3116,36 +3170,31 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", - "dev": true, - "license": "MIT" + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==", + "dev": true }, "node_modules/@types/node": { "version": "10.17.60", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/node-fetch": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -3155,29 +3204,25 @@ "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/retry": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.5.tgz", "integrity": "sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/tunnel": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3187,7 +3232,6 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, - "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -3196,25 +3240,23 @@ "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz", - "integrity": "sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", + "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.0", - "@typescript-eslint/type-utils": "8.18.0", - "@typescript-eslint/utils": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/type-utils": "8.20.0", + "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3230,16 +3272,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz", - "integrity": "sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.20.0.tgz", + "integrity": "sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==", "dev": true, - "license": "MITClause", "dependencies": { - "@typescript-eslint/scope-manager": "8.18.0", - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/typescript-estree": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4" }, "engines": { @@ -3255,14 +3296,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", - "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0" + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3273,16 +3313,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz", - "integrity": "sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", + "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.0", - "@typescript-eslint/utils": "8.18.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/utils": "8.20.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3297,11 +3336,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", - "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3311,20 +3349,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz", - "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3342,7 +3379,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3352,7 +3388,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3364,16 +3399,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz", - "integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.0", - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/typescript-estree": "8.18.0" + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3388,13 +3422,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", - "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/types": "8.20.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3406,11 +3439,10 @@ } }, "node_modules/@typespec/compiler": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.63.0.tgz", - "integrity": "sha512-cC3YniwbFghn1fASX3r1IgNjMrwaY4gmzznkHT4f/NxE+HK4XoXWn4EG7287QgVMCaHUykzJCIfW9k7kIleW5A==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.64.0.tgz", + "integrity": "sha512-LnQGlQMWyqvhGg4Z9iyr5qSBTjI9zd49sodbEJbLafrxbj9pbHyjfSFbvt60gVbfuNvLErsdXvZiqqXV5nZdmQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "~7.25.7", "ajv": "~8.17.1", @@ -3440,7 +3472,6 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", "dev": true, - "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -3449,17 +3480,16 @@ } }, "node_modules/@typespec/http": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.63.0.tgz", - "integrity": "sha512-SYVbBmLPAPdWZfdMs0QlbpTnFREDnkINu2FR+0kRX12qzbRgpRbLsdhg59qx4TfKoh4IAPgSV+Fq84w7BWGsyQ==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.64.0.tgz", + "integrity": "sha512-vyyZP3Woo7or/2Oiq1fH+R0X/4WOBDjAlGsb9tLQzswfQHp710kNfiecA10y9gDC/9h+PjKsTElS1RcRRanpwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0", - "@typespec/streams": "~0.63.0" + "@typespec/compiler": "~0.64.0", + "@typespec/streams": "~0.64.0" }, "peerDependenciesMeta": { "@typespec/streams": { @@ -3468,25 +3498,23 @@ } }, "node_modules/@typespec/openapi": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.63.0.tgz", - "integrity": "sha512-/KzR60mj3P/LnNWd/QfH0KTN/If4+mjrsWNSB7/uab6c8Qu/lNsGlZDkmWq4EFiwBR7VmpdFz9FP7d/m3O+tGw==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.64.0.tgz", + "integrity": "sha512-C4sPdj86ejsNkpmEaAMMqQR+0kq4Ayp4sPKvj4OTtawLXacXKzZ9NYng2jrguO6WbLr5f3NyRZKi7Ys2suT27A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0" + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0" } }, "node_modules/@typespec/openapi3": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.63.0.tgz", - "integrity": "sha512-HC8VeakPznXNn7euAyAxUFNsOcfSzM8tQwYPNUMWs0qGJqGgb6vjf5rShQmfgrCe5Y6zcMM2PPBuxaFV3xXYLw==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.64.0.tgz", + "integrity": "sha512-k6WQ/5lTAnlg8TvdzB89W4mO8HhS3MHbdr5VMS4sS8j1K8uCC9xUPR0v+5TF9EDpKpa53LewetzNduP9KjMUmA==", "dev": true, - "license": "MIT", "dependencies": { "@readme/openapi-parser": "~2.6.0", "openapi-types": "~12.1.3", @@ -3499,12 +3527,16 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0", - "@typespec/openapi": "~0.63.0", - "@typespec/versioning": "~0.63.0" + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0", + "@typespec/json-schema": "~0.64.0", + "@typespec/openapi": "~0.64.0", + "@typespec/versioning": "~0.64.0" }, "peerDependenciesMeta": { + "@typespec/json-schema": { + "optional": true + }, "@typespec/xml": { "optional": true } @@ -3515,7 +3547,6 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", "dev": true, - "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -3524,52 +3555,49 @@ } }, "node_modules/@typespec/prettier-plugin-typespec": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/prettier-plugin-typespec/-/prettier-plugin-typespec-0.63.0.tgz", - "integrity": "sha512-ZVnTk1B/8EzqDjHbhkicP8lH5Zj+R7Ft0wv4N34Au3SzxNFCNMzMKuA+ie3GsbQYrYi3T7gBiotW+Xt0lPKSOA==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/prettier-plugin-typespec/-/prettier-plugin-typespec-0.64.0.tgz", + "integrity": "sha512-hL/DOo7+PFp/HGeZgkKqkbG9Q4iUYbhvqHcwXhzCOIaBFn50fgNQbBRdQD9VgvrGGbwN7fyTJmsGWyFnuSNjJA==", "dev": true, - "license": "MIT", "dependencies": { "prettier": "~3.3.3" } }, "node_modules/@typespec/rest": { - "version": "0.63.1", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.63.1.tgz", - "integrity": "sha512-RQbTM+HGjCaNIWC0v72m5ulnuvLjuRigb7pH4QeRCvFtGPHos+WBv5SImkGrbYx3353OGR8dIi7lWe7aNwiDcQ==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.64.0.tgz", + "integrity": "sha512-7+oUajQzOkZPTMtRiGp6hzTTmy7mRaxOYqxIPgDhYyr9I6oQPLAcBsYhFNk/ulcqld/ApaV5ycXaOlK41REOyQ==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0", - "@typespec/http": "~0.63.0" + "@typespec/compiler": "~0.64.0", + "@typespec/http": "~0.64.0" } }, "node_modules/@typespec/streams": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.63.0.tgz", - "integrity": "sha512-4vEd5jdpdaY2i9CDHwSRuiUNCJr+M/gUCwNsaGWgsJdrfR/lx8WX3Y27KcRDNVcRQF7nsOR4i28r4siWqrTM4w==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.64.0.tgz", + "integrity": "sha512-5Rh5yimdWw16ppX8VmMy/Q7KtUTdKOzwv+EgaEREFOYJ86LWdn8y/EtZ4wDy9iXitxJ6kxDOOfJphaA9DaodfQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0" + "@typespec/compiler": "~0.64.0" } }, "node_modules/@typespec/versioning": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.63.0.tgz", - "integrity": "sha512-BPvmPL+g20yEmSA8XRfbIHdToNOjssq4QfwOU6D7kKLLXnZHFb1hmuwW0tf0Wa/lYgoaUC60ONAeoXgNT1ZOIQ==", + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.64.0.tgz", + "integrity": "sha512-GtmuE7UwVYuVwgSpbSWzZB5UO6O/f/o1NqjLStctF8zkv2/5s+RbeqRyamjDuUyhMrIwqw+TMXtAnMXpSHlB8A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.63.0" + "@typespec/compiler": "~0.64.0" } }, "node_modules/@vitest/expect": { @@ -3577,7 +3605,6 @@ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "@vitest/utils": "2.1.8", @@ -3593,7 +3620,6 @@ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, - "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" }, @@ -3606,7 +3632,6 @@ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", "pathe": "^1.1.2" @@ -3620,7 +3645,6 @@ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", @@ -3635,7 +3659,6 @@ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, - "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" }, @@ -3648,7 +3671,6 @@ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", @@ -3663,7 +3685,6 @@ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, - "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -3676,7 +3697,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3689,7 +3709,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -3699,7 +3718,6 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -3712,7 +3730,6 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14" } @@ -3722,7 +3739,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3739,7 +3755,6 @@ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "dev": true, - "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, @@ -3754,7 +3769,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -3764,7 +3778,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3780,7 +3793,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -3792,29 +3804,25 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" + "dev": true }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } @@ -3824,7 +3832,6 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } @@ -3834,7 +3841,6 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" } @@ -3843,15 +3849,13 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", "dev": true, - "license": "MIT", "dependencies": { "retry": "0.13.1" } @@ -3860,8 +3864,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/autorest": { "version": "3.7.1", @@ -3869,7 +3872,6 @@ "integrity": "sha512-6q17NtosQZPqBkIOUnaOPedf3PDIBF7Ha1iEGRhTqZF6TG2Q/1E3ID/D+ePIIzZDKvW01p/2pENq/oiBWH9IGQ==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "autorest": "entrypoints/app.js" }, @@ -3882,7 +3884,6 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } @@ -3891,8 +3892,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/azure-rest-api-specs-eng-tools": { "resolved": "eng/tools", @@ -3902,8 +3902,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -3923,15 +3922,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } @@ -3940,15 +3937,13 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3959,7 +3954,6 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -3972,15 +3966,14 @@ "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", "dev": true, - "license": "MIT", "dependencies": { "base64-js": "^1.1.2" } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3996,11 +3989,10 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -4015,7 +4007,6 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -4028,7 +4019,6 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -4037,15 +4027,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -4055,15 +4043,14 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001687", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", - "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "dev": true, "funding": [ { @@ -4078,22 +4065,19 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/chai": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, - "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -4106,11 +4090,10 @@ } }, "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -4122,8 +4105,7 @@ "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/change-case-all": { "version": "2.1.0", @@ -4141,15 +4123,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.0.0.tgz", "integrity": "sha512-xVgPpulCooDjY6zH4m9YW3jbkaBe3FKIAvF5sj5t7aBNsVl2ljIE+xwJ4iNgiDZHFQvNIpjdKdVOQvvk5ZfxbQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/charset": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -4159,7 +4139,6 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 16" } @@ -4175,7 +4154,6 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } @@ -4185,7 +4163,6 @@ "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -4198,7 +4175,6 @@ "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dev": true, - "license": "MIT", "dependencies": { "string-width": "^4.2.3" }, @@ -4211,7 +4187,6 @@ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, - "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -4227,7 +4202,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -4242,7 +4216,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -4252,7 +4225,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4265,7 +4237,6 @@ "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -4275,7 +4246,6 @@ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -4286,7 +4256,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -4295,15 +4264,13 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/color-string": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -4314,7 +4281,6 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -4324,7 +4290,6 @@ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, - "license": "MIT", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -4335,7 +4300,6 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4348,7 +4312,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=16" } @@ -4358,7 +4321,6 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.29.3.tgz", "integrity": "sha512-fvt/NdOFKaL2gyhltSy6BC4LxbbxbnPxBMl923ittqO/JBM0wQHaoYZliE4tp26cRxX/ZZtRsJlZzQrVdUkXAA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "entities": "~2.0", "mdurl": "~1.0.1", @@ -4376,17 +4338,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, - "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -4397,22 +4357,19 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4426,15 +4383,13 @@ "version": "4.16.3", "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -4447,7 +4402,6 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12" } @@ -4457,7 +4411,6 @@ "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0" } @@ -4467,7 +4420,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -4485,7 +4437,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4494,15 +4445,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -4511,15 +4460,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/deepdash": { "version": "5.3.9", "resolved": "https://registry.npmjs.org/deepdash/-/deepdash-5.3.9.tgz", "integrity": "sha512-GRzJ0q9PDj2T+J2fX+b+TlUa2NlZ11l6vJ8LHNKVGeZ8CfxCuJaCychTq07iDRTvlfO8435jlvVS1QXBrW9kMg==", "dev": true, - "license": "MIT", "dependencies": { "lodash": "^4.17.21", "lodash-es": "^4.17.21" @@ -4530,7 +4477,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -4540,7 +4486,6 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -4551,7 +4496,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -4573,7 +4517,6 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -4585,54 +4528,47 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, - "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "node_modules/electron-to-chromium": { - "version": "1.5.72", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz", - "integrity": "sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw==", - "dev": true, - "license": "ISC" + "version": "1.5.83", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz", + "integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/entities": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -4641,15 +4577,13 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true, - "license": "MIT" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true }, "node_modules/esbuild": { "version": "0.21.5", @@ -4657,7 +4591,6 @@ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4695,7 +4628,6 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -4705,25 +4637,23 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", - "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.16.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -4731,7 +4661,7 @@ "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -4775,7 +4705,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz", "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", "@eslint-community/eslint-utils": "^4.4.0", @@ -4805,11 +4734,10 @@ } }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -4822,7 +4750,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4839,7 +4766,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4852,7 +4778,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4869,7 +4794,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4886,7 +4810,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -4899,7 +4822,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4916,7 +4838,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -4929,7 +4850,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -4938,15 +4858,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -4962,7 +4880,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4978,7 +4895,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -4994,7 +4910,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5007,7 +4922,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -5025,7 +4939,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5039,7 +4952,6 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -5052,7 +4964,6 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -5065,7 +4976,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5075,7 +4985,6 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -5085,7 +4994,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -5095,7 +5003,6 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -5105,7 +5012,6 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, - "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", @@ -5132,7 +5038,6 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5145,7 +5050,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5158,7 +5062,6 @@ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5171,7 +5074,6 @@ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", "dev": true, - "license": "MIT", "dependencies": { "parse-ms": "^4.0.0" }, @@ -5187,7 +5089,6 @@ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } @@ -5196,8 +5097,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/extsprintf": { "version": "1.3.0", @@ -5206,28 +5106,25 @@ "dev": true, "engines": [ "node >=0.6.0" - ], - "license": "MIT" + ] }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -5237,29 +5134,35 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", "dev": true, - "license": "BSD-3-Clause" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -5268,8 +5171,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fetch-blob": { "version": "3.2.0", @@ -5286,7 +5188,6 @@ "url": "https://paypal.me/jimmywarting" } ], - "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -5300,7 +5201,6 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, - "license": "MIT", "dependencies": { "is-unicode-supported": "^2.0.0" }, @@ -5316,7 +5216,6 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -5329,7 +5228,6 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5339,7 +5237,6 @@ "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.4.tgz", "integrity": "sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">= 10.4.0" } @@ -5349,7 +5246,6 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -5362,7 +5258,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -5376,7 +5271,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -5389,36 +5283,31 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/flatted": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/foreach": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, - "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5435,7 +5324,6 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } @@ -5445,7 +5333,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5460,7 +5347,6 @@ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dev": true, - "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -5473,7 +5359,6 @@ "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", "dev": true, - "license": "MIT", "dependencies": { "js-yaml": "^3.13.1" } @@ -5483,7 +5368,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -5493,7 +5377,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5507,7 +5390,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -5521,8 +5403,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -5530,7 +5411,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -5544,7 +5424,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5554,7 +5433,6 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -5564,7 +5442,6 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, - "license": "MIT", "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" @@ -5581,7 +5458,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5594,7 +5470,6 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } @@ -5605,7 +5480,6 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5626,7 +5500,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -5639,7 +5512,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -5652,7 +5524,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, - "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", @@ -5672,36 +5543,31 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -5723,7 +5589,6 @@ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, - "license": "ISC", "engines": { "node": ">=4" } @@ -5734,7 +5599,6 @@ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -5748,7 +5612,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5764,15 +5627,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -5782,7 +5643,6 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5794,29 +5654,25 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -5829,15 +5685,13 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz", "integrity": "sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/http-signature": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -5877,7 +5731,6 @@ "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-1.1.1.tgz", "integrity": "sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6.15.1" } @@ -5887,7 +5740,6 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -5901,7 +5753,6 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } @@ -5910,15 +5761,13 @@ "version": "3.32.1", "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.32.1.tgz", "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==", - "dev": true, - "license": "Unlicense" + "dev": true }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -5931,7 +5780,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -5941,7 +5789,6 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5958,7 +5805,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -5968,7 +5814,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -5979,7 +5824,6 @@ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5989,29 +5833,25 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/inversify": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.1.1.tgz", "integrity": "sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, - "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -6023,11 +5863,10 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -6043,7 +5882,6 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6059,7 +5897,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6069,7 +5906,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -6079,7 +5915,6 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -6092,7 +5927,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -6102,7 +5936,6 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6115,7 +5948,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -6127,15 +5959,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-unicode-supported": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -6148,7 +5978,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -6160,22 +5989,19 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -6185,7 +6011,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -6200,7 +6025,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -6210,7 +6034,6 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -6226,7 +6049,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6239,7 +6061,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", @@ -6254,7 +6075,6 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -6268,7 +6088,6 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -6284,7 +6103,6 @@ "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } @@ -6293,29 +6111,25 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-sha512": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.9.0.tgz", "integrity": "sha512-mirki9WS/SUahm+1TbAPkqvbCiCfOAAsyXeHxK1UkullnJVVqoJG2pL9ObvT05CN+tM7fxhfYm0NbXn+1hWoZg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6327,15 +6141,13 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/jsep": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -6345,7 +6157,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -6357,15 +6168,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-merge-patch": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-merge-patch/-/json-merge-patch-1.0.2.tgz", "integrity": "sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" } @@ -6374,15 +6183,13 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-pointer": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", "dev": true, - "license": "MIT", "dependencies": { "foreach": "^2.0.4" } @@ -6391,36 +6198,31 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" + "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/json-to-ast": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", "dev": true, - "license": "MIT", "dependencies": { "code-error-fragment": "0.0.230", "grapheme-splitter": "^1.0.4" @@ -6434,7 +6236,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6447,7 +6248,6 @@ "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.2.0.tgz", "integrity": "sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==", "dev": true, - "license": "MIT", "dependencies": { "@jsep-plugin/assignment": "^1.3.0", "@jsep-plugin/regex": "^1.0.4", @@ -6466,7 +6266,6 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6479,7 +6278,6 @@ "engines": [ "node >=0.6.0" ], - "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -6492,7 +6290,6 @@ "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", "dev": true, - "license": "MIT", "dependencies": { "date-format": "4.0.3", "lodash": "^4.17.21", @@ -6508,7 +6305,6 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -6518,7 +6314,6 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -6527,15 +6322,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -6545,7 +6338,6 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6558,15 +6350,13 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/liquid-json": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz", "integrity": "sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -6576,7 +6366,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -6588,43 +6377,37 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/logform": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", "dev": true, - "license": "MIT", "dependencies": { "@colors/colors": "1.6.0", "@types/triple-beam": "^1.3.2", @@ -6642,7 +6425,6 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -6651,15 +6433,13 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6668,11 +6448,10 @@ } }, "node_modules/magic-string": { - "version": "0.30.15", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.15.tgz", - "integrity": "sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -6682,7 +6461,6 @@ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", @@ -6694,7 +6472,6 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -6710,7 +6487,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -6719,15 +6495,13 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/md5-file": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==", "dev": true, - "license": "MIT", "bin": { "md5-file": "cli.js" }, @@ -6739,15 +6513,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -6757,7 +6529,6 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -6771,7 +6542,6 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6781,7 +6551,6 @@ "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.1.tgz", "integrity": "sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "charset": "^1.0.0" } @@ -6791,7 +6560,6 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6804,7 +6572,6 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -6813,15 +6580,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6834,7 +6599,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6844,7 +6608,6 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -6854,7 +6617,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -6867,7 +6629,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "dev": true, - "license": "MIT", "engines": { "node": "*" } @@ -6876,15 +6637,13 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mustache": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "dev": true, - "license": "MIT", "bin": { "mustache": "bin/mustache" } @@ -6900,7 +6659,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6912,22 +6670,19 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/newman": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/newman/-/newman-6.2.1.tgz", "integrity": "sha512-Zq8Sr5GFF+OXs5yIbyglLMKMh1WNMjYVV0yZaSBZ+DIgQOIWcxT8QTfbrl/YUGrLyT4rjpu+yZ/Z+kozw79GEA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@postman/tough-cookie": "4.1.3-postman.1", "async": "3.2.5", @@ -6963,7 +6718,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, - "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -6979,7 +6733,6 @@ "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.4.0.tgz", "integrity": "sha512-2BGDFcUwlK08CqZFUlIC8kwRJueVzPjZnnokWPtJCd9f2J06HBQpGL7t2P1Ud1NEsK9NHq9wdipUhWLOPj5s/Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@faker-js/faker": "5.5.3", "file-type": "3.9.0", @@ -7002,7 +6755,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7028,7 +6780,6 @@ "url": "https://paypal.me/jimmywarting" } ], - "license": "MIT", "engines": { "node": ">=10.5.0" } @@ -7038,7 +6789,6 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, - "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -7057,7 +6807,6 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -7067,7 +6816,6 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "dev": true, - "license": "MIT", "dependencies": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -7081,15 +6829,13 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/node-oauth1/-/node-oauth1-1.3.0.tgz", "integrity": "sha512-0yggixNfrA1KcBwvh/Hy2xAS1Wfs9dcg6TdFf2zN7gilcAigMdrtZ4ybrBSXBgLvGDw9V1p2MRnGBMq7XjTWLg==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/node-object-hash": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-1.4.2.tgz", "integrity": "sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=0.10.0" } @@ -7098,15 +6844,13 @@ "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -7119,7 +6863,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } @@ -7129,7 +6872,6 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" @@ -7146,7 +6888,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -7159,7 +6900,6 @@ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -7172,7 +6912,6 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } @@ -7234,7 +6973,6 @@ "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.7.0.tgz", "integrity": "sha512-Zq2i3QO6k9DA8vnm29mYM4G8IE9u1mhF1GUabVEqPNX8Lj833gdxQ2NAFxt2BZsfAL+e9cT8SyVN7dFVJ/Hf0g==", "dev": true, - "license": "MIT", "dependencies": { "@azure/abort-controller": "^2.0.0", "tslib": "^2.2.0" @@ -7248,7 +6986,6 @@ "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.2.0" }, @@ -7261,7 +6998,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7278,7 +7014,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7288,7 +7023,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -7299,15 +7033,13 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/oav/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7321,7 +7053,6 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "license": "MIT", "bin": { "uuid": "bin/uuid" } @@ -7331,7 +7062,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7345,15 +7075,13 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/oav/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -7376,7 +7104,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7390,7 +7117,6 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10.0" } @@ -7400,7 +7126,6 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } @@ -7410,7 +7135,6 @@ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, - "license": "MIT", "dependencies": { "fn.name": "1.x.x" } @@ -7419,15 +7143,13 @@ "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -7445,7 +7167,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -7461,7 +7182,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -7474,7 +7194,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7483,15 +7202,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" + "dev": true }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -7504,7 +7221,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -7523,7 +7239,6 @@ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7533,7 +7248,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7543,7 +7257,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7553,7 +7266,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7562,15 +7274,13 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -7586,22 +7296,19 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/path-to-regexp": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/path-type": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -7613,15 +7320,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/pathval": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.16" } @@ -7630,22 +7335,19 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -7658,15 +7360,14 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -7682,9 +7383,8 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -7697,7 +7397,6 @@ "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.5.0.tgz", "integrity": "sha512-152JSW9pdbaoJihwjc7Q8lc3nPg/PC9lPTHdMk7SHnHhu/GBJB7b2yb9zG7Qua578+3PxkQ/HYBuXpDSvsf7GQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@faker-js/faker": "5.5.3", "file-type": "3.9.0", @@ -7720,7 +7419,6 @@ "resolved": "https://registry.npmjs.org/postman-collection-transformer/-/postman-collection-transformer-4.1.8.tgz", "integrity": "sha512-smJ6X7Z7kbg6hp7JZPFixrSN3J3WkQed7DrWCC5tF7IxOMpFLqhtTtGssY8nD1inP8+mJf+N72Pf2ttUAHgBKw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "commander": "8.3.0", "inherits": "2.0.4", @@ -7740,7 +7438,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12" } @@ -7750,7 +7447,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7766,7 +7462,6 @@ "resolved": "https://registry.npmjs.org/postman-request/-/postman-request-2.88.1-postman.34.tgz", "integrity": "sha512-GkolJ4cIzgamcwHRDkeZc/taFWO1u2HuGNML47K9ZAsFH2LdEkS5Yy8QanpzhjydzV3WWthl9v60J8E7SjKodQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@postman/form-data": "~3.1.1", "@postman/tough-cookie": "~4.1.3-postman.1", @@ -7800,7 +7495,6 @@ "resolved": "https://registry.npmjs.org/postman-runtime/-/postman-runtime-7.39.1.tgz", "integrity": "sha512-IRNrBE0l1K3ZqQhQVYgF6MPuqOB9HqYncal+a7RpSS+sysKLhJMkC9SfUn1HVuOpokdPkK92ykvPzj8kCOLYAg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@postman/tough-cookie": "4.1.3-postman.1", "async": "3.2.5", @@ -7830,15 +7524,13 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/postman-runtime/node_modules/postman-collection": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.4.0.tgz", "integrity": "sha512-2BGDFcUwlK08CqZFUlIC8kwRJueVzPjZnnokWPtJCd9f2J06HBQpGL7t2P1Ud1NEsK9NHq9wdipUhWLOPj5s/Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@faker-js/faker": "5.5.3", "file-type": "3.9.0", @@ -7861,7 +7553,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7877,7 +7568,6 @@ "resolved": "https://registry.npmjs.org/postman-sandbox/-/postman-sandbox-4.7.1.tgz", "integrity": "sha512-H2wYSLK0mB588IaxoLrLoPbpmxsIcwFtgaK2c8gAsAQ+TgYFePwb4qdeVcYDMqmwrLd77/ViXkjasP/sBMz1sQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21", "postman-collection": "4.4.0", @@ -7893,7 +7583,6 @@ "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.4.0.tgz", "integrity": "sha512-2BGDFcUwlK08CqZFUlIC8kwRJueVzPjZnnokWPtJCd9f2J06HBQpGL7t2P1Ud1NEsK9NHq9wdipUhWLOPj5s/Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@faker-js/faker": "5.5.3", "file-type": "3.9.0", @@ -7916,7 +7605,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7932,7 +7620,6 @@ "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.5.tgz", "integrity": "sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "punycode": "^2.1.1" }, @@ -7945,7 +7632,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -7955,7 +7641,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -7971,7 +7656,6 @@ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, - "license": "MIT", "dependencies": { "parse-ms": "^2.1.0" }, @@ -7987,7 +7671,6 @@ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -7997,7 +7680,6 @@ "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.2.0.tgz", "integrity": "sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==", "dev": true, - "license": "MIT", "dependencies": { "strip-ansi": "^5.0.0" } @@ -8007,7 +7689,6 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -8043,7 +7724,6 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, - "license": "MIT", "dependencies": { "punycode": "^2.3.1" }, @@ -8056,7 +7736,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -8066,7 +7745,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.6" } @@ -8075,8 +7753,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -8096,15 +7773,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -8120,7 +7795,6 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -8138,7 +7812,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -8148,7 +7821,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -8162,22 +7834,19 @@ "version": "0.1.14", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, - "license": "MIT", "bin": { "regexp-tree": "bin/regexp-tree" } @@ -8187,7 +7856,6 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -8209,7 +7877,6 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8219,7 +7886,6 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8228,30 +7894,30 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, - "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8261,7 +7927,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -8271,7 +7936,6 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -8281,18 +7945,16 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rollup": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.1.tgz", - "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", + "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.6" }, @@ -8304,25 +7966,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.28.1", - "@rollup/rollup-android-arm64": "4.28.1", - "@rollup/rollup-darwin-arm64": "4.28.1", - "@rollup/rollup-darwin-x64": "4.28.1", - "@rollup/rollup-freebsd-arm64": "4.28.1", - "@rollup/rollup-freebsd-x64": "4.28.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.28.1", - "@rollup/rollup-linux-arm-musleabihf": "4.28.1", - "@rollup/rollup-linux-arm64-gnu": "4.28.1", - "@rollup/rollup-linux-arm64-musl": "4.28.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.28.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1", - "@rollup/rollup-linux-riscv64-gnu": "4.28.1", - "@rollup/rollup-linux-s390x-gnu": "4.28.1", - "@rollup/rollup-linux-x64-gnu": "4.28.1", - "@rollup/rollup-linux-x64-musl": "4.28.1", - "@rollup/rollup-win32-arm64-msvc": "4.28.1", - "@rollup/rollup-win32-ia32-msvc": "4.28.1", - "@rollup/rollup-win32-x64-msvc": "4.28.1", + "@rollup/rollup-android-arm-eabi": "4.30.1", + "@rollup/rollup-android-arm64": "4.30.1", + "@rollup/rollup-darwin-arm64": "4.30.1", + "@rollup/rollup-darwin-x64": "4.30.1", + "@rollup/rollup-freebsd-arm64": "4.30.1", + "@rollup/rollup-freebsd-x64": "4.30.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", + "@rollup/rollup-linux-arm-musleabihf": "4.30.1", + "@rollup/rollup-linux-arm64-gnu": "4.30.1", + "@rollup/rollup-linux-arm64-musl": "4.30.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", + "@rollup/rollup-linux-riscv64-gnu": "4.30.1", + "@rollup/rollup-linux-s390x-gnu": "4.30.1", + "@rollup/rollup-linux-x64-gnu": "4.30.1", + "@rollup/rollup-linux-x64-musl": "4.30.1", + "@rollup/rollup-win32-arm64-msvc": "4.30.1", + "@rollup/rollup-win32-ia32-msvc": "4.30.1", + "@rollup/rollup-win32-x64-msvc": "4.30.1", "fsevents": "~2.3.2" } }, @@ -8345,7 +8007,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -8368,15 +8029,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safe-stable-stringify": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -8385,22 +8044,19 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -8413,7 +8069,6 @@ "resolved": "https://registry.npmjs.org/serialised-error/-/serialised-error-1.1.3.tgz", "integrity": "sha512-vybp3GItaR1ZtO2nxZZo8eOo7fnVaNtP3XE2vJKgzkKR2bagCkdJ1EpYYhEMd3qu/80DwQk9KjsNSxE3fXWq0g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "object-hash": "^1.1.2", "stack-trace": "0.0.9", @@ -8426,7 +8081,6 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "license": "MIT", "bin": { "uuid": "bin/uuid" } @@ -8435,15 +8089,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8456,7 +8108,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8465,22 +8116,19 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "ISC", "engines": { "node": ">=14" }, @@ -8493,7 +8141,6 @@ "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz", "integrity": "sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==", "dev": true, - "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", @@ -8509,7 +8156,6 @@ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -8518,15 +8164,13 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.16" }, @@ -8539,7 +8183,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8549,7 +8192,6 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8559,7 +8201,6 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -8569,26 +8210,23 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" + "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, - "license": "CC0-1.0" + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true }, "node_modules/sponge-case": { "version": "2.0.3", @@ -8600,15 +8238,13 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/sshpk": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, - "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -8642,22 +8278,19 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/std-env": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/stream-length": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-length/-/stream-length-1.0.2.tgz", "integrity": "sha512-aI+qKFiwoDV4rsXiS7WRoCt+v2RX1nUj17+KJC5r2gfh5xoSJIfP6Y3Do/HtvesFcTSWthIuJ3l1cvKQY/+nZg==", "dev": true, - "license": "WTFPL", "dependencies": { "bluebird": "^2.6.2" } @@ -8667,7 +8300,6 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -8677,7 +8309,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8693,7 +8324,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8708,7 +8338,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8718,7 +8347,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8731,7 +8359,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8741,7 +8368,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8760,7 +8386,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -8774,7 +8399,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8787,7 +8411,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8797,7 +8420,6 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -8810,7 +8432,6 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -8823,7 +8444,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -8836,7 +8456,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -8849,7 +8468,6 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8871,15 +8489,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/teleport-javascript/-/teleport-javascript-1.0.0.tgz", "integrity": "sha512-j1llvWVFyEn/6XIFDfX5LAU43DXe0GCt3NfXDwJ8XpRRMkS+i50SAkonAONBy+vxwPFBd50MFU8a2uj8R/ccLg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/temporal-polyfill": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.2.5.tgz", "integrity": "sha512-ye47xp8Cb0nDguAhrrDS1JT1SzwEV9e26sSsrWzVu+yPZ7LzceEcH0i2gci9jWfOfSCCgM3Qv5nOYShVUUFUXA==", "dev": true, - "license": "MIT", "dependencies": { "temporal-spec": "^0.2.4" } @@ -8888,15 +8504,13 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.2.4.tgz", "integrity": "sha512-lDMFv4nKQrSjlkHKAlHVqKrBG4DyFfa9F74cmBZ3Iy3ed8yvWnlWSIdi4IKfSqwmazAohBNwiN64qGx4y5Q3IQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/test-exclude": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", @@ -8911,7 +8525,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -8921,7 +8534,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -8942,7 +8554,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8957,29 +8568,25 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tinyexec": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", - "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", - "dev": true, - "license": "MIT" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true }, "node_modules/tinypool": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, - "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" } @@ -8989,7 +8596,6 @@ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -8999,7 +8605,6 @@ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -9018,7 +8623,6 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -9030,52 +8634,46 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/triple-beam": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -9084,15 +8682,13 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true, - "license": "Unlicense" + "dev": true }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -9105,7 +8701,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -9115,7 +8710,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9125,15 +8719,14 @@ } }, "node_modules/typescript-eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.0.tgz", - "integrity": "sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.20.0.tgz", + "integrity": "sha512-Kxz2QRFsgbWj6Xcftlw3Dd154b3cEPFqQC+qMZrMypSijPd4UanKKvoKDrJ4o8AIfZFKAF+7sMaEIR8mTElozA==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.18.0", - "@typescript-eslint/parser": "8.18.0", - "@typescript-eslint/utils": "8.18.0" + "@typescript-eslint/eslint-plugin": "8.20.0", + "@typescript-eslint/parser": "8.20.0", + "@typescript-eslint/utils": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9152,7 +8745,6 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -9165,22 +8757,19 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/undici-types": { "version": "5.28.4", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.28.4.tgz", "integrity": "sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/unicorn-magic": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -9193,15 +8782,14 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -9217,10 +8805,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -9234,7 +8821,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -9244,7 +8830,6 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, - "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -9254,15 +8839,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -9272,7 +8855,6 @@ "resolved": "https://registry.npmjs.org/uvm/-/uvm-2.1.1.tgz", "integrity": "sha512-BZ5w8adTpNNr+zczOBRpaX/hH8UPKAf7fmCnidrcsqt3bn8KT9bDIfuS7hgRU9RXgiN01su2pwysBONY6w8W5w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "flatted": "3.2.6" }, @@ -9284,15 +8866,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -9303,7 +8883,6 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10" } @@ -9316,7 +8895,6 @@ "engines": [ "node >=0.6.0" ], - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -9328,7 +8906,6 @@ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, - "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", @@ -9347,11 +8924,10 @@ } }, "node_modules/vite-node/node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", + "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", "dev": true, - "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -9363,7 +8939,6 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, - "license": "MIT", "optional": true, "peer": true }, @@ -9372,7 +8947,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -9441,7 +9015,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "dev": true, - "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, @@ -9454,7 +9027,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "dev": true, - "license": "MIT", "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" @@ -9465,7 +9037,6 @@ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -9474,22 +9045,19 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/web-streams-polyfill": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -9498,15 +9066,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, - "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -9517,7 +9083,6 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9532,15 +9097,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, - "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -9557,7 +9120,6 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", "dev": true, - "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", @@ -9580,7 +9142,6 @@ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", "dev": true, - "license": "MIT", "dependencies": { "logform": "^2.7.0", "readable-stream": "^3.6.2", @@ -9595,7 +9156,6 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -9605,7 +9165,6 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9614,15 +9173,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9641,7 +9198,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9659,7 +9215,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -9669,7 +9224,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9682,7 +9236,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -9692,7 +9245,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9704,15 +9256,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, - "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -9726,7 +9276,6 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0" } @@ -9736,7 +9285,6 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0" } @@ -9746,7 +9294,6 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } @@ -9755,15 +9302,13 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, - "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -9776,7 +9321,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -9795,7 +9339,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } @@ -9805,7 +9348,6 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -9815,7 +9357,6 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -9828,7 +9369,6 @@ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" }, @@ -9841,7 +9381,6 @@ "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", "dev": true, - "license": "MIT", "dependencies": { "lodash.get": "^4.4.2", "lodash.isequal": "^4.5.0", @@ -9862,7 +9401,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": "^12.20.0 || >=14" @@ -9873,7 +9411,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -9883,7 +9420,6 @@ "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz", "integrity": "sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, diff --git a/package.json b/package.json index 77aa1f76635c..abf6a4aca217 100644 --- a/package.json +++ b/package.json @@ -2,23 +2,23 @@ "name": "azure-rest-api-specs", "devDependencies": { "@azure-tools/typespec-apiview": "0.5.0", - "@azure-tools/typespec-autorest": "0.49.0", - "@azure-tools/typespec-azure-core": "0.49.0", - "@azure-tools/typespec-azure-portal-core": "0.49.0", - "@azure-tools/typespec-azure-resource-manager": "0.49.0", - "@azure-tools/typespec-azure-rulesets": "0.49.0", + "@azure-tools/typespec-autorest": "0.50.0", + "@azure-tools/typespec-azure-core": "0.50.0", + "@azure-tools/typespec-azure-portal-core": "0.50.0", + "@azure-tools/typespec-azure-resource-manager": "0.50.0", + "@azure-tools/typespec-azure-rulesets": "0.50.0", "@azure-tools/typespec-client-generator-cli": "0.15.1", - "@azure-tools/typespec-client-generator-core": "0.49.1", + "@azure-tools/typespec-client-generator-core": "0.50.0", "@azure-tools/typespec-liftr-base": "0.6.0", "@azure/avocado": "^0.9.1", - "@typespec/compiler": "0.63.0", - "@typespec/http": "0.63.0", - "@typespec/openapi": "0.63.0", - "@typespec/openapi3": "0.63.0", - "@typespec/prettier-plugin-typespec": "0.63.0", - "@typespec/rest": "0.63.1", - "@typespec/streams": "0.63.0", - "@typespec/versioning": "0.63.0", + "@typespec/compiler": "0.64.0", + "@typespec/http": "0.64.0", + "@typespec/openapi": "0.64.0", + "@typespec/openapi3": "0.64.0", + "@typespec/prettier-plugin-typespec": "0.64.0", + "@typespec/rest": "0.64.0", + "@typespec/streams": "0.64.0", + "@typespec/versioning": "0.64.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.5.1", "prettier": "~3.3.3", From a682ad9d7362d0121c5ec349a29f32c18d4e34dd Mon Sep 17 00:00:00 2001 From: Kuan Lu Date: Thu, 16 Jan 2025 12:59:36 -0800 Subject: [PATCH 44/82] Azure Search Management Plane 2025-02-01-preview (#31991) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Copy files from preview/2024-06-01-preview Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to preview/2025-02-01-preview Updated the API version from preview/2024-06-01-preview to preview/2025-02-01-preview. * Added tag for 2025-02-01-preview in readme file * Swagger prettier fixes * Swagger prettier fixes * Add new properties for service upgrade * Add upgrade properties to examples * Add example for service upgrade * Add service upgrade enpoint * Swagger prettier changes * Fix typo * Add computeType to search contract. * Fix formatting for prettier. * Address PR feedback. * Update swagger. * Add Feature by region changes * Add endpoint support feature * Use common systemData properties * fix typo * Added fields to Features by region feature * Update to have 400 aligned with other operations * Fixing CI build errors * Fixed CI builds * Fix JSON * Fix LintDiff * Added example for update sku * Prettier fix and avocado fix. Update example to use systemdata * Renamed features to resource availability * Add default region in resource availability * Remove compute type example * Fix ResourceAvailabilities typo * remove isDefaultRegion * SDK generation bug fix * Service upgrade uses LRO, rename FeatureAvailabilities * Model Feature Availability as enum * Updated to align example with swagger definition * add serviceUpgradeDate property to searchServiceProperties * update examples with the serviceUpgradedDate property * fix a Typo in the name of the property * Change name to offering * Update example file name for offering * Add long-running-operation pattern to upgrade path. * prettier fix * Some more prettier fix * Search.json swagger prettier --------- Co-authored-by: efrainretana Co-authored-by: Leonardo Galindo Sánchez Co-authored-by: Jacob Hill Co-authored-by: efrainretana <141282336+efrainretana@users.noreply.github.com> Co-authored-by: marcop Co-authored-by: Kuan Lu --- ...eateOrUpdateSharedPrivateLinkResource.json | 39 + .../DeletePrivateEndpointConnection.json | 29 + .../DeleteSharedPrivateLinkResource.json | 19 + .../GetPrivateEndpointConnection.json | 28 + .../examples/GetQuotaUsage.json | 22 + .../examples/GetQuotaUsagesList.json | 86 + .../GetSharedPrivateLinkResource.json | 25 + ...stPrivateEndpointConnectionsByService.json | 31 + ...stSharedPrivateLinkResourcesByService.json | 28 + .../ListSupportedPrivateLinkResources.json | 88 + ...orkSecurityPerimeterConfigurationsGet.json | 45 + ...yPerimeterConfigurationsListByService.json | 48 + ...urityPerimeterConfigurationsReconcile.json | 16 + .../examples/SearchCheckNameAvailability.json | 19 + .../examples/SearchCreateOrUpdateService.json | 119 + ...earchCreateOrUpdateServiceAuthOptions.json | 132 + ...CreateOrUpdateServiceDisableLocalAuth.json | 122 + ...viceToAllowAccessFromPrivateEndpoints.json | 126 + ...rviceToAllowAccessFromPublicCustomIPs.json | 147 + ...lowAccessFromPublicCustomIPsAndBypass.json | 150 + ...eateOrUpdateServiceWithCmkEnforcement.json | 128 + ...teOrUpdateServiceWithDataExfiltration.json | 132 + ...archCreateOrUpdateServiceWithIdentity.json | 153 + ...earchCreateOrUpdateWithSemanticSearch.json | 128 + .../examples/SearchCreateQueryKey.json | 17 + .../examples/SearchDeleteQueryKey.json | 14 + .../examples/SearchDeleteService.json | 13 + .../examples/SearchGetAdminKeys.json | 16 + .../examples/SearchGetService.json | 60 + .../examples/SearchListOfferings.json | 96 + .../examples/SearchListOperations.json | 616 +++ .../SearchListQueryKeysBySearchService.json | 24 + .../SearchListServicesByResourceGroup.json | 111 + .../SearchListServicesBySubscription.json | 110 + .../examples/SearchRegenerateAdminKey.json | 17 + .../examples/SearchUpdateService.json | 70 + .../SearchUpdateServiceAuthOptions.json | 76 + .../SearchUpdateServiceDisableLocalAuth.json | 69 + ...viceToAllowAccessFromPrivateEndpoints.json | 68 + ...rviceToAllowAccessFromPublicCustomIPs.json | 81 + ...lowAccessFromPublicCustomIPsAndBypass.json | 83 + .../SearchUpdateServiceToRemoveIdentity.json | 66 + ...SearchUpdateServiceWithCmkEnforcement.json | 73 + ...archUpdateServiceWithDataExfiltration.json | 75 + ...SearchUpdateServiceWithSemanticSearch.json | 72 + .../examples/SearchUpdateServiceWithSku.json | 68 + .../UpdatePrivateEndpointConnection.json | 36 + .../UpgradeSearchServiceToLatestVersion.json | 64 + .../preview/2025-02-01-preview/search.json | 3609 +++++++++++++++++ .../search/resource-manager/readme.md | 11 +- 50 files changed, 7474 insertions(+), 1 deletion(-) create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/CreateOrUpdateSharedPrivateLinkResource.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeletePrivateEndpointConnection.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeleteSharedPrivateLinkResource.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetPrivateEndpointConnection.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsage.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsagesList.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetSharedPrivateLinkResource.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListPrivateEndpointConnectionsByService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSharedPrivateLinkResourcesByService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSupportedPrivateLinkResources.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsGet.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsListByService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsReconcile.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCheckNameAvailability.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceAuthOptions.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceDisableLocalAuth.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithCmkEnforcement.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithDataExfiltration.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithIdentity.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateWithSemanticSearch.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateQueryKey.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteQueryKey.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetAdminKeys.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOfferings.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOperations.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListQueryKeysBySearchService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesByResourceGroup.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesBySubscription.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchRegenerateAdminKey.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateService.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceAuthOptions.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceDisableLocalAuth.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPrivateEndpoints.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPs.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToRemoveIdentity.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithCmkEnforcement.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithDataExfiltration.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSemanticSearch.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSku.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpdatePrivateEndpointConnection.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpgradeSearchServiceToLatestVersion.json create mode 100644 specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/search.json diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/CreateOrUpdateSharedPrivateLinkResource.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/CreateOrUpdateSharedPrivateLinkResource.json new file mode 100644 index 000000000000..464554016f9d --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/CreateOrUpdateSharedPrivateLinkResource.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "sharedPrivateLinkResourceName": "testResource", + "sharedPrivateLinkResource": { + "properties": { + "requestMessage": "please approve", + "groupId": "blob", + "privateLinkResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/storageAccountName", + "resourceRegion": null + } + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchService/sharedPrivateLinkResources/testResource/operationStatuses/08586060559526078782?api-version=2025-02-01-preview", + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchService/sharedPrivateLinkResources/testResource/operationStatuses/08586060559526078782?api-version=2025-02-01-preview" + } + }, + "200": { + "body": { + "name": "testResource", + "type": "Microsoft.Search/searchServices/sharedPrivateLinkResources", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/sharedPrivateLinkResources/testResource", + "properties": { + "requestMessage": "please approve", + "groupId": "blob", + "privateLinkResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/storageAccountName", + "status": "Pending", + "resourceRegion": null + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeletePrivateEndpointConnection.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeletePrivateEndpointConnection.json new file mode 100644 index 000000000000..2a690fff201a --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeletePrivateEndpointConnection.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "privateEndpointConnectionName": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/privateEndpointConnections/testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "name": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "type": "Microsoft.Search/searchServices/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Disconnected", + "description": "", + "actionsRequired": "None" + } + } + } + }, + "404": {} + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeleteSharedPrivateLinkResource.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeleteSharedPrivateLinkResource.json new file mode 100644 index 000000000000..1b11c216040e --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/DeleteSharedPrivateLinkResource.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "sharedPrivateLinkResourceName": "testResource" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/sharedPrivateLinkResources/testResource/operationStatuses/159c5e07-c829-4896-8aba-a1d4fcc7c89c?api-version=2025-02-01-preview", + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/sharedPrivateLinkResources/testResource/operationStatuses/159c5e07-c829-4896-8aba-a1d4fcc7c89c?api-version=2025-02-01-preview" + } + }, + "204": {}, + "404": {} + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetPrivateEndpointConnection.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetPrivateEndpointConnection.json new file mode 100644 index 000000000000..7909f126ba41 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetPrivateEndpointConnection.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "privateEndpointConnectionName": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/privateEndpointConnections/testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "name": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "type": "Microsoft.Search/searchServices/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsage.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsage.json new file mode 100644 index 000000000000..2f57e129450c --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsage.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "location": "westus", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "skuName": "free" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/{skuName}", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "free", + "localizedValue": "F - Free" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsagesList.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsagesList.json new file mode 100644 index 000000000000..a516363739fe --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetQuotaUsagesList.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "location": "westus", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/free", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "free", + "localizedValue": "F - Free" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/basic", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "basic", + "localizedValue": "B - Basic" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/standard", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "standard", + "localizedValue": "S - Standard" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/standard2", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "standard2", + "localizedValue": "S2 - Standard2" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/standard3", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "standard3", + "localizedValue": "S3 - Standard3" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/storageOptimizedL1", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "storageOptimizedL1", + "localizedValue": "L1 - Storage Optimized" + } + }, + { + "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/storageOptimizedL2", + "unit": "Count", + "currentValue": 8, + "limit": 16, + "name": { + "value": "storageOptimizedL2", + "localizedValue": "L2 - Storage Optimized" + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetSharedPrivateLinkResource.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetSharedPrivateLinkResource.json new file mode 100644 index 000000000000..e434864ea359 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/GetSharedPrivateLinkResource.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "sharedPrivateLinkResourceName": "testResource" + }, + "responses": { + "200": { + "body": { + "name": "testResource", + "type": "Microsoft.Search/searchServices/sharedPrivateLinkResources", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/sharedPrivateLinkResources/testResource", + "properties": { + "requestMessage": "please approve", + "groupId": "blob", + "privateLinkResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/storageAccountName", + "status": "Pending", + "resourceRegion": null + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListPrivateEndpointConnectionsByService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListPrivateEndpointConnectionsByService.json new file mode 100644 index 000000000000..16207d264b5b --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListPrivateEndpointConnectionsByService.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/privateEndpointConnections/testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "name": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "type": "Microsoft.Search/searchServices/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "", + "actionsRequired": "None" + } + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSharedPrivateLinkResourcesByService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSharedPrivateLinkResourcesByService.json new file mode 100644 index 000000000000..762eee964df4 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSharedPrivateLinkResourcesByService.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "testResource", + "type": "Microsoft.Search/searchServices/sharedPrivateLinkResources", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/sharedPrivateLinkResources/testResource", + "properties": { + "requestMessage": "please approve", + "groupId": "blob", + "privateLinkResourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/storageAccountName", + "status": "Pending", + "resourceRegion": null + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSupportedPrivateLinkResources.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSupportedPrivateLinkResources.json new file mode 100644 index 000000000000..6d30874142ed --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/ListSupportedPrivateLinkResources.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/privateLinkResources/searchService", + "name": "searchService", + "type": "Microsoft.Search/searchServices/privateLinkResources", + "properties": { + "groupId": "searchService", + "requiredMembers": [ + "searchService" + ], + "requiredZoneNames": [ + "privatelink.search.windows.net" + ], + "shareablePrivateLinkResourceTypes": [ + { + "name": "blob", + "properties": { + "type": "Microsoft.Storage/storageAccounts", + "groupId": "blob", + "description": "Azure AI Search indexers can connect to blobs in Azure Storage for reading data from an indexer data source, for writing intermediate results of indexer execution or for storing any knowledge store projections." + } + }, + { + "name": "table", + "properties": { + "type": "Microsoft.Storage/storageAccounts", + "groupId": "table", + "description": "Azure AI Search indexers can connect to tables in Azure Storage for reading data from an indexer data source, for writing intermediate results of indexer execution or for storing any knowledge store projections." + } + }, + { + "name": "Sql", + "properties": { + "type": "Microsoft.DocumentDB/databaseAccounts", + "groupId": "Sql", + "description": "Azure AI Search indexers can connect to Azure Cosmos DB API for NoSQL for reading data from an indexer data source." + } + }, + { + "name": "plr", + "properties": { + "type": "Microsoft.Sql/servers", + "groupId": "sqlServer", + "description": "Azure AI Search indexers can connect to Azure SQL database on a server for reading data from an indexer data source." + } + }, + { + "name": "vault", + "properties": { + "type": "Microsoft.KeyVault/vaults", + "groupId": "vault", + "description": "Azure AI Search can access keys in Azure Key Vault to encrypt sensitive data in a search index and synonym map data." + } + }, + { + "name": "plr", + "properties": { + "type": "Microsoft.DBforMySQL/servers", + "groupId": "mysqlServer", + "description": "Azure AI Search indexers can connect to MySQL databases for reading data from an indexer data source." + } + }, + { + "name": "site", + "properties": { + "type": "Microsoft.Web/sites", + "groupId": "sites", + "description": "For custom skills that connect to an app service, you can specify sites as the group ID." + } + } + ] + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsGet.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsGet.json new file mode 100644 index 000000000000..519f7d8dfdcc --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsGet.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "searchServiceName": "mysearchservice", + "nspConfigName": "00000001-2222-3333-4444-111144444444.assoc1", + "api-version": "2025-02-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/networkSecurityPerimeterConfigurations/00000001-2222-3333-4444-111144444444.assoc1", + "name": "00000001-2222-3333-4444-111144444444.assoc1", + "type": "Microsoft.Search/searchServices/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Accepted", + "networkSecurityPerimeter": { + "id": "/subscriptions/subid/resourceGroups/networkRG/providers/Microsoft.Network/networkSecurityPerimeters/perimeter1", + "location": "westus" + }, + "resourceAssociation": { + "name": "assoc1", + "accessMode": "Enforced" + }, + "profile": { + "name": "profile1", + "accessRulesVersion": "0", + "accessRules": [ + { + "name": "rule1", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "148.0.0.0/8", + "152.4.6.0/24" + ] + } + } + ] + } + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsListByService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsListByService.json new file mode 100644 index 000000000000..9ac269bbb8ec --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsListByService.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "searchServiceName": "mysearchservice", + "api-version": "2025-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/networkSecurityPerimeterConfigurations/00000001-2222-3333-4444-111144444444.assoc1", + "name": "00000001-2222-3333-4444-111144444444.assoc1", + "type": "Microsoft.Search/searchServices/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Accepted", + "networkSecurityPerimeter": { + "id": "/subscriptions/subid/resourceGroups/networkRG/providers/Microsoft.Network/networkSecurityPerimeters/perimeter1", + "location": "westus" + }, + "resourceAssociation": { + "name": "assoc1", + "accessMode": "Enforced" + }, + "profile": { + "name": "profile1", + "accessRulesVersion": "0", + "accessRules": [ + { + "name": "rule1", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "148.0.0.0/8", + "152.4.6.0/24" + ] + } + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsReconcile.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsReconcile.json new file mode 100644 index 000000000000..6268d0a1c9c3 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/NetworkSecurityPerimeterConfigurationsReconcile.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "searchServiceName": "mysearchservice", + "nspConfigName": "00000001-2222-3333-4444-111144444444.assoc1", + "api-version": "2025-02-01-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/locations/westus/AsyncOperationResults/11111111-1111-1111-1111-111111111111" + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCheckNameAvailability.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCheckNameAvailability.json new file mode 100644 index 000000000000..996a1cc35524 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCheckNameAvailability.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "checkNameAvailabilityInput": { + "name": "mysearchservice", + "type": "searchServices" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": false, + "reason": "AlreadyExists", + "message": "" + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateService.json new file mode 100644 index 000000000000..83a36a0866b1 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateService.json @@ -0,0 +1,119 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceAuthOptions.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceAuthOptions.json new file mode 100644 index 000000000000..07dcd52912dd --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceAuthOptions.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default", + "authOptions": { + "aadOrApiKey": { + "aadAuthFailureMode": "http401WithBearerChallenge" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "authOptions": { + "aadOrApiKey": { + "aadAuthFailureMode": "http401WithBearerChallenge" + } + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": true, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "authOptions": { + "aadOrApiKey": { + "aadAuthFailureMode": "http401WithBearerChallenge" + } + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceDisableLocalAuth.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceDisableLocalAuth.json new file mode 100644 index 000000000000..4c97ab25d2e3 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceDisableLocalAuth.json @@ -0,0 +1,122 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default", + "disableLocalAuth": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": true, + "authOptions": null, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": true, + "authOptions": null, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints.json new file mode 100644 index 000000000000..d0d1166b2f8a --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints.json @@ -0,0 +1,126 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "publicNetworkAccess": "disabled", + "hostingMode": "default", + "computeType": "default" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "disabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "disabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs.json new file mode 100644 index 000000000000..451f80fc2571 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs.json @@ -0,0 +1,147 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ] + }, + "hostingMode": "default", + "computeType": "default" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ] + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ] + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json new file mode 100644 index 000000000000..2b96bdad1cf9 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json @@ -0,0 +1,150 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ], + "bypass": "AzurePortal" + }, + "hostingMode": "default", + "computeType": "default" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ], + "bypass": "AzurePortal" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ], + "bypass": "AzurePortal" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithCmkEnforcement.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithCmkEnforcement.json new file mode 100644 index 000000000000..16ed86a4568d --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithCmkEnforcement.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default", + "encryptionWithCmk": { + "enforcement": "Enabled" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Enabled", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Enabled", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithDataExfiltration.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithDataExfiltration.json new file mode 100644 index 000000000000..beb4e653b5dd --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithDataExfiltration.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default", + "disabledDataExfiltrationOptions": [ + "All" + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [ + "All" + ], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [ + "All" + ], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithIdentity.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithIdentity.json new file mode 100644 index 000000000000..76ca50d26e01 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateServiceWithIdentity.json @@ -0,0 +1,153 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default" + }, + "identity": { + "type": "SystemAssigned, UserAssigned", + "userAssignedIdentities": { + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-mi": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "9d1e1f18-2122-4988-a11c-878782e40a5c", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd", + "userAssignedIdentities": { + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-mi": { + "clientId": "cd1dcac8-82dd-45b5-9aed-76795d529f6b", + "principalId": "24e07a75-1286-41e5-a15d-ded85ec3acd7" + } + } + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "9d1e1f18-2122-4988-a11c-878782e40a5c", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd", + "userAssignedIdentities": { + "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/user-mi": { + "clientId": "cd1dcac8-82dd-45b5-9aed-76795d529f6b", + "principalId": "24e07a75-1286-41e5-a15d-ded85ec3acd7" + } + } + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateWithSemanticSearch.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateWithSemanticSearch.json new file mode 100644 index 000000000000..e35b380e79ac --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateOrUpdateWithSemanticSearch.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "location": "westus", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "hostingMode": "default", + "computeType": "default", + "semanticSearch": "free" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "semanticSearch": "free", + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "semanticSearch": "free", + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateQueryKey.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateQueryKey.json new file mode 100644 index 000000000000..83defac74d86 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchCreateQueryKey.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "name": "An API key granting read-only access to the documents collection of an index.", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "name": "An API key granting read-only access to the documents collection of an index.", + "key": "" + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteQueryKey.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteQueryKey.json new file mode 100644 index 000000000000..b9ba0d120fef --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteQueryKey.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "key": "", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": {}, + "204": {}, + "404": {} + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteService.json new file mode 100644 index 000000000000..05b004b21d4d --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchDeleteService.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": {}, + "204": {}, + "404": {} + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetAdminKeys.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetAdminKeys.json new file mode 100644 index 000000000000..72f4ead5be38 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetAdminKeys.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "primaryKey": "", + "secondaryKey": "" + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetService.json new file mode 100644 index 000000000000..57bdc07833f4 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchGetService.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": "2025-02-01T00:00:00Z" + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOfferings.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOfferings.json new file mode 100644 index 000000000000..33417cc53735 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOfferings.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "api-version": "2025-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "regionName": "East US", + "features": [ + { + "name": "SemanticRanker" + }, + { + "name": "QueryRewriting" + } + ], + "skus": [ + { + "sku": { + "name": "standard" + }, + "limits": { + "indexes": 50, + "indexers": 50, + "partitionStorageInGigabytes": 160, + "partitionVectorStorageInGigabytes": 35, + "searchUnits": 36, + "replicas": 12, + "partitions": 12 + } + }, + { + "sku": { + "name": "standard2" + }, + "limits": { + "indexes": 200, + "indexers": 200, + "partitionStorageInGigabytes": 512, + "partitionVectorStorageInGigabytes": 150, + "searchUnits": 36, + "replicas": 12, + "partitions": 12 + } + } + ] + }, + { + "regionName": "West Europe", + "features": [ + { + "name": "Grok" + }, + { + "name": "ImageVectorization" + } + ], + "skus": [ + { + "sku": { + "name": "standard" + }, + "limits": { + "indexes": 50, + "indexers": 50, + "partitionStorageInGigabytes": 160, + "partitionVectorStorageInGigabytes": 35, + "searchUnits": 36, + "replicas": 12, + "partitions": 12 + } + }, + { + "sku": { + "name": "standard2" + }, + "limits": { + "indexes": 200, + "indexers": 200, + "partitionStorageInGigabytes": 512, + "partitionVectorStorageInGigabytes": 150, + "searchUnits": 36, + "replicas": 12, + "partitions": 12 + } + } + ] + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOperations.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOperations.json new file mode 100644 index 000000000000..651e1200c404 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListOperations.json @@ -0,0 +1,616 @@ +{ + "parameters": { + "api-version": "2025-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Search/operations/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "List all available operations", + "description": "Lists all of the available operations of the Microsoft.Search provider." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/register/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Register the Search Resource Provider", + "description": "Registers the subscription for the search resource provider and enables the creation of search services." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Set Search Service", + "description": "Creates or updates the search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Get Search Service", + "description": "Reads the search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Delete Search Service", + "description": "Deletes the search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/start/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Start Search Service", + "description": "Starts the search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/stop/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Stop Search Service", + "description": "Stops the search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/listAdminKeys/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Get Admin Key", + "description": "Reads the admin keys." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/regenerateAdminKey/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Regenerate Admin Key", + "description": "Regenerates the admin key." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/listQueryKeys/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "API Keys", + "operation": "Get Query Keys", + "description": "Returns the list of query API keys for the given Azure AI Search service." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/createQueryKey/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Search Services", + "operation": "Create Query Key", + "description": "Creates the query key." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/deleteQueryKey/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "API Keys", + "operation": "Delete Query Key", + "description": "Deletes the query key." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/checkNameAvailability/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Service Name Availability", + "operation": "Check Service Name Availability", + "description": "Checks availability of the service name." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/diagnosticSettings/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Diagnostic Settings", + "operation": "Get Diagnostic Setting", + "description": "Gets the diganostic setting for the resource." + }, + "origin": "system" + }, + { + "name": "Microsoft.Search/searchServices/diagnosticSettings/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Diagnostic Settings", + "operation": "Set Diagnostic Setting", + "description": "Creates or updates the diganostic setting for the resource." + }, + "origin": "system" + }, + { + "name": "Microsoft.Search/searchServices/metricDefinitions/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "The metric definitions for the search service", + "operation": "Read search service metric definitions", + "description": "Gets the available metrics for the search service." + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "SearchLatency", + "displayName": "Search Latency", + "displayDescription": "Average search latency for the search service", + "unit": "Seconds", + "aggregationType": "Average", + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ] + }, + { + "name": "SearchQueriesPerSecond", + "displayName": "Search queries per second", + "displayDescription": "Search queries per second for the search service.", + "unit": "CountPerSecond", + "aggregationType": "Average", + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ] + }, + { + "name": "ThrottledSearchQueriesPercentage", + "displayName": "Throttled search queries percentage", + "displayDescription": "Percentage of search queries that were throttled for the search service.", + "unit": "Percent", + "aggregationType": "Average", + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ] + } + ] + } + } + }, + { + "name": "Microsoft.Search/searchServices/logDefinitions/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "The log definition for the search service", + "operation": "Read search service log definitions", + "description": "Gets the available logs for the search service." + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "OperationLogs", + "displayName": "Operation Logs", + "blobDuration": "PT1H" + } + ] + } + } + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnectionProxies/validate/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection Proxy", + "operation": "Validate Private Endpoint Connection Proxy", + "description": "Validates a private endpoint connection create call from NRP (Microsoft.Network Resource Provider) side." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnectionProxies/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection Proxy", + "operation": "Create Private Endpoint Connection Proxy", + "description": "Creates a private endpoint connection proxy with the specified parameters or updates the properties or tags for the specified private endpoint connection proxy." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnectionProxies/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection Proxy", + "operation": "Get Private Endpoint Connection Proxy", + "description": "Returns the list of private endpoint connection proxies or gets the properties for the specified private endpoint connection proxy." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnectionProxies/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection Proxy", + "operation": "Delete Private Endpoint Connection Proxy", + "description": "Deletes an existing private endpoint connection proxy." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnections/write", + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection", + "operation": "Create Private Endpoint Connection", + "description": "Creates a private endpoint connection with the specified parameters or updates the properties or tags for the specified private endpoint connections." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnections/read", + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection", + "operation": "Get Private Endpoint Connection", + "description": "Returns the list of private endpoint connections or gets the properties for the specified private endpoint connection." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/privateEndpointConnections/delete", + "display": { + "provider": "Microsoft Search", + "resource": "Private Endpoint Connection", + "operation": "Delete Private Endpoint Connection", + "description": "Deletes an existing private endpoint connection." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/sharedPrivateLinkResources/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Shared Private Link Resource", + "operation": "Create Shared Private Link Resource", + "description": "Creates a new shared private link resource with the specified parameters or updates the properties for the specified shared private link resource." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/sharedPrivateLinkResources/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Shared Private Link Resource", + "operation": "Get Shared Private Link Resource", + "description": "Returns the list of shared private link resources or gets the properties for the specified shared private link resource." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/sharedPrivateLinkResources/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Shared Private Link Resource", + "operation": "Delete Shared Private Link Resource", + "description": "Deletes an existing shared private link resource." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Shared Private Link Resource", + "operation": "Get Operation Status", + "description": "Get the details of a long running shared private link resource operation." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexes", + "operation": "Read Index", + "description": "Return an index or its statistics, return a list of indexes or their statistics, or test the lexical analysis components of an index." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexes", + "operation": "Create or Update Index", + "description": "Create an index or modify its properties." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexes", + "operation": "Delete Index", + "description": "Delete an index." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/synonymMaps/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Synonym Maps", + "operation": "Read Synonym Map", + "description": "Return a synonym map or a list of synonym maps." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/synonymMaps/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Synonym Maps", + "operation": "Create or Update Synonym Map", + "description": "Create a synonym map or modify its properties." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/synonymMaps/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Synonym Maps", + "operation": "Delete Synonym Map", + "description": "Delete a synonym map." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/dataSources/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Data Sources", + "operation": "Read Data Source", + "description": "Return a data source or a list of data sources." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/dataSources/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Data Sources", + "operation": "Create or Update Data Source", + "description": "Create a data source or modify its properties." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/dataSources/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Data Sources", + "operation": "Delete Data Source", + "description": "Delete a data source." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/skillsets/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Skillsets", + "operation": "Read Skillset", + "description": "Return a skillset or a list of skillsets." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/skillsets/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Skillsets", + "operation": "Create or Update Skillset", + "description": "Create a skillset or modify its properties." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/skillsets/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Skillsets", + "operation": "Delete Skillset", + "description": "Delete a skillset." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexers/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexers", + "operation": "Read Indexer", + "description": "Return an indexer or its status, or return a list of indexers or their statuses." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexers/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexers", + "operation": "Create or Manage Indexer", + "description": "Create an indexer, modify its properties, or manage its execution." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexers/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Indexers", + "operation": "Delete Indexer", + "description": "Delete an indexer." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/debugSessions/read", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Debug Sessions", + "operation": "Read Debug Session", + "description": "Return a debug session or a list of debug sessions." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/debugSessions/write", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Debug Sessions", + "operation": "Create or Update Debug Session", + "description": "Create a debug session or modify its properties." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/debugSessions/delete", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Debug Sessions", + "operation": "Delete Debug Session", + "description": "Delete a debug session." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/debugSessions/execute/action", + "isDataAction": false, + "display": { + "provider": "Microsoft Search", + "resource": "Debug Sessions", + "operation": "Execute Debug Session", + "description": "Use a debug session, get execution data, or evaluate expressions on it." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/documents/read", + "isDataAction": true, + "display": { + "provider": "Microsoft Search", + "resource": "Documents", + "operation": "Read Documents", + "description": "Read documents or suggested query terms from an index." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/documents/write", + "isDataAction": true, + "display": { + "provider": "Microsoft Search", + "resource": "Documents", + "operation": "Write Documents", + "description": "Upload documents to an index or modify existing documents." + }, + "origin": "user,system" + }, + { + "name": "Microsoft.Search/searchServices/indexes/documents/delete", + "isDataAction": true, + "display": { + "provider": "Microsoft Search", + "resource": "Documents", + "operation": "Delete Documents", + "description": "Delete documents from an index." + }, + "origin": "user,system" + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListQueryKeysBySearchService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListQueryKeysBySearchService.json new file mode 100644 index 000000000000..295838757fad --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListQueryKeysBySearchService.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Query key for browser-based clients", + "key": "" + }, + { + "name": "Query key for mobile clients", + "key": "" + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesByResourceGroup.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesByResourceGroup.json new file mode 100644 index 000000000000..797f179fa245 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesByResourceGroup.json @@ -0,0 +1,111 @@ +{ + "parameters": { + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice2", + "name": "mysearchservice2", + "location": "eastus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "basic" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesBySubscription.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesBySubscription.json new file mode 100644 index 000000000000..e7a89f77bd04 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchListServicesBySubscription.json @@ -0,0 +1,110 @@ +{ + "parameters": { + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + }, + { + "id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Search/searchServices/mysearchservice2", + "name": "mysearchservice2", + "location": "eastus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app" + }, + "sku": { + "name": "basic" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + ] + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchRegenerateAdminKey.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchRegenerateAdminKey.json new file mode 100644 index 000000000000..aa893c14b9e3 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchRegenerateAdminKey.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "keyKind": "primary", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "primaryKey": "", + "secondaryKey": "" + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateService.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateService.json new file mode 100644 index 000000000000..c9f28c80e784 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateService.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2 + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceAuthOptions.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceAuthOptions.json new file mode 100644 index 000000000000..1a307716cb05 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceAuthOptions.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2, + "authOptions": { + "aadOrApiKey": { + "aadAuthFailureMode": "http401WithBearerChallenge" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "authOptions": { + "aadOrApiKey": { + "aadAuthFailureMode": "http401WithBearerChallenge" + } + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceDisableLocalAuth.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceDisableLocalAuth.json new file mode 100644 index 000000000000..bdba737224b8 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceDisableLocalAuth.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2, + "disableLocalAuth": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": true, + "authOptions": null, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPrivateEndpoints.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPrivateEndpoints.json new file mode 100644 index 000000000000..e53f77941254 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPrivateEndpoints.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "publicNetworkAccess": "disabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "basic" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "disabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPs.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPs.json new file mode 100644 index 000000000000..0dbd92508151 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPs.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "10.2.3.4" + } + ] + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json new file mode 100644 index 000000000000..0716ffcbdff4 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "123.4.5.6" + }, + { + "value": "123.4.6.0/18" + } + ], + "bypass": "AzurePortal" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [ + { + "value": "10.2.3.4" + } + ], + "bypass": "AzurePortal" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToRemoveIdentity.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToRemoveIdentity.json new file mode 100644 index 000000000000..7a985e926283 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceToRemoveIdentity.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "sku": { + "name": "standard" + }, + "identity": { + "type": "None" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": {}, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 3, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithCmkEnforcement.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithCmkEnforcement.json new file mode 100644 index 000000000000..3c4662d511bc --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithCmkEnforcement.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2, + "encryptionWithCmk": { + "enforcement": "Enabled" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Enabled", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithDataExfiltration.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithDataExfiltration.json new file mode 100644 index 000000000000..26c36656e911 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithDataExfiltration.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2, + "disabledDataExfiltrationOptions": [ + "All" + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [ + "All" + ], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSemanticSearch.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSemanticSearch.json new file mode 100644 index 000000000000..f0f835b25097 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSemanticSearch.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "properties": { + "replicaCount": 2, + "semanticSearch": "standard" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 2, + "partitionCount": 1, + "endpoint": "https://mysearchservice.search.windows.net/", + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "computeType": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "semanticSearch": "standard", + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSku.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSku.json new file mode 100644 index 000000000000..fdda0bdf41a8 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/SearchUpdateServiceWithSku.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "service": { + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard2" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "status": "provisioning", + "statusDetails": "", + "hostingMode": "default", + "provisioningState": "Provisioning", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": null + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpdatePrivateEndpointConnection.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpdatePrivateEndpointConnection.json new file mode 100644 index 000000000000..b00a17fa01ee --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpdatePrivateEndpointConnection.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid", + "privateEndpointConnectionName": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "privateEndpointConnection": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Rejected", + "description": "Rejected for some reason." + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice/privateEndpointConnections/testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "name": "testEndpoint.50bf4fbe-d7c1-4b48-a642-4f5892642546", + "type": "Microsoft.Search/searchServices/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/testEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Rejected", + "description": "Rejected for some reason.", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpgradeSearchServiceToLatestVersion.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpgradeSearchServiceToLatestVersion.json new file mode 100644 index 000000000000..33c7801089c3 --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/examples/UpgradeSearchServiceToLatestVersion.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "searchServiceName": "mysearchservice", + "resourceGroupName": "rg1", + "api-version": "2025-02-01-preview", + "subscriptionId": "subid" + }, + "responses": { + "202": { + "headers": { + "Location": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/locations/westus/AsyncOperationResults/11111111-1111-1111-1111-111111111111" + } + }, + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Search/searchServices/mysearchservice", + "name": "mysearchservice", + "location": "westus", + "type": "Microsoft.Search/searchServices", + "tags": { + "app-name": "My e-commerce app", + "new-tag": "Adding a new tag" + }, + "sku": { + "name": "standard" + }, + "properties": { + "replicaCount": 1, + "partitionCount": 1, + "status": "running", + "statusDetails": "", + "hostingMode": "default", + "provisioningState": "Succeeded", + "publicNetworkAccess": "enabled", + "networkRuleSet": { + "ipRules": [], + "bypass": "None" + }, + "privateEndpointConnections": [], + "sharedPrivateLinkResources": [], + "encryptionWithCmk": { + "enforcement": "Unspecified", + "encryptionComplianceStatus": "Compliant" + }, + "disableLocalAuth": false, + "authOptions": { + "apiKeyOnly": {} + }, + "disabledDataExfiltrationOptions": [], + "upgradeAvailable": false, + "serviceUpgradeDate": "2025-02-01T00:00:00Z" + }, + "systemData": { + "createdBy": "My e-commerce app", + "createdByType": "Application", + "createdAt": "2024-01-01T00:00:00Z", + "lastModifiedBy": "fakeuser@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-11-01T00:00:00Z" + } + } + } + } +} diff --git a/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/search.json b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/search.json new file mode 100644 index 000000000000..6b4f8490fa1a --- /dev/null +++ b/specification/search/resource-manager/Microsoft.Search/preview/2025-02-01-preview/search.json @@ -0,0 +1,3609 @@ +{ + "swagger": "2.0", + "info": { + "title": "SearchManagementClient", + "description": "Client that can be used to manage Azure AI Search services and API keys.", + "version": "2025-02-01-preview" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Specifies an implicit grant flow, as supported on the Microsoft Identity platform.", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/providers/Microsoft.Search/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available REST API operations of the Microsoft.Search provider.", + "operationId": "Operations_List", + "x-ms-examples": { + "SearchListOperations": { + "$ref": "./examples/SearchListOperations.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of operations.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Operations API failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/providers/Microsoft.Search/offerings": { + "get": { + "tags": [ + "Offerings" + ], + "description": "Lists all of the features and SKUs offered by the Azure AI Search service in each region.", + "operationId": "Offerings_List", + "x-ms-examples": { + "SearchListOfferings": { + "$ref": "./examples/SearchListOfferings.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of features and SKUs offered in each region.", + "schema": { + "$ref": "#/definitions/OfferingsListResult" + } + }, + "default": { + "description": "Offerings API failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/listAdminKeys": { + "post": { + "tags": [ + "AdminKeys" + ], + "operationId": "AdminKeys_Get", + "x-ms-examples": { + "SearchGetAdminKeys": { + "$ref": "./examples/SearchGetAdminKeys.json" + } + }, + "description": "Gets the primary and secondary admin API keys for the specified Azure AI Search service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The admin keys were successfully retrieved and are in the response. You can use either the primary or secondary key as the value of the 'api-key' parameter in the Azure AI Search service REST API or SDK to perform any operations on your search service, including privileged operations. Privileged operations include managing resources like indexes and data sources as well as uploading, modifying, or deleting data in your indexes.", + "schema": { + "$ref": "#/definitions/AdminKeyResult" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, or search service could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/regenerateAdminKey/{keyKind}": { + "post": { + "tags": [ + "AdminKeys" + ], + "operationId": "AdminKeys_Regenerate", + "x-ms-examples": { + "SearchRegenerateAdminKey": { + "$ref": "./examples/SearchRegenerateAdminKey.json" + } + }, + "description": "Regenerates either the primary or secondary admin API key. You can only regenerate one key at a time.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "name": "keyKind", + "in": "path", + "required": true, + "type": "string", + "enum": [ + "primary", + "secondary" + ], + "x-ms-enum": { + "name": "AdminKeyKind", + "modelAsString": false, + "values": [ + { + "value": "primary", + "name": "Primary", + "description": "The primary API key for the search service." + }, + { + "value": "secondary", + "name": "Secondary", + "description": "The secondary API key for the search service." + } + ] + }, + "description": "Specifies which key to regenerate. Valid values include 'primary' and 'secondary'." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The specified admin key was successfully regenerated. Both admin keys are included in the response, including the newly-regenerated key.", + "schema": { + "$ref": "#/definitions/AdminKeyResult" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, or search service could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/createQueryKey/{name}": { + "post": { + "tags": [ + "QueryKeys" + ], + "operationId": "QueryKeys_Create", + "x-ms-examples": { + "SearchCreateQueryKey": { + "$ref": "./examples/SearchCreateQueryKey.json" + } + }, + "description": "Generates a new query key for the specified search service. You can create up to 50 query keys per service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the new query API key." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The query key was successfully created and is in the response. You can use the query key as the value of the 'api-key' parameter in the Azure AI Search service REST API or SDK to perform read-only operations on your search indexes such as querying and looking up documents by ID.", + "schema": { + "$ref": "#/definitions/QueryKey" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, or search service could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/listQueryKeys": { + "post": { + "tags": [ + "QueryKeys" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "QueryKeys_ListBySearchService", + "x-ms-examples": { + "SearchListQueryKeysBySearchService": { + "$ref": "./examples/SearchListQueryKeysBySearchService.json" + } + }, + "description": "Returns the list of query API keys for the given Azure AI Search service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "All query keys for the given search service were successfully retrieved and are in the response. You can use any of the query keys as the value of the 'api-key' parameter in the Azure AI Search Service REST API or SDK to perform read-only operations on your Search indexes such as querying and looking up documents by ID.", + "schema": { + "$ref": "#/definitions/ListQueryKeysResult" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, or search service could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/deleteQueryKey/{key}": { + "delete": { + "tags": [ + "QueryKeys" + ], + "operationId": "QueryKeys_Delete", + "x-ms-examples": { + "SearchDeleteQueryKey": { + "$ref": "./examples/SearchDeleteQueryKey.json" + } + }, + "description": "Deletes the specified query key. Unlike admin keys, query keys are not regenerated. The process for regenerating a query key is to delete and then recreate it.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "name": "key", + "in": "path", + "required": true, + "type": "string", + "description": "The query key to be deleted. Query keys are identified by value, not by name." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The query key was successfully deleted." + }, + "204": { + "description": "The query key was successfully deleted." + }, + "404": { + "description": "The subscription, resource group, search service, or query key could not be found." + }, + "default": { + "description": "HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}": { + "put": { + "tags": [ + "Services" + ], + "operationId": "Services_CreateOrUpdate", + "x-ms-examples": { + "SearchCreateOrUpdateService": { + "$ref": "./examples/SearchCreateOrUpdateService.json" + }, + "SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs": { + "$ref": "./examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPs.json" + }, + "SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass": { + "$ref": "./examples/SearchCreateOrUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json" + }, + "SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints": { + "$ref": "./examples/SearchCreateOrUpdateServiceToAllowAccessFromPrivateEndpoints.json" + }, + "SearchCreateOrUpdateServiceWithIdentity": { + "$ref": "./examples/SearchCreateOrUpdateServiceWithIdentity.json" + }, + "SearchCreateOrUpdateServiceAuthOptions": { + "$ref": "./examples/SearchCreateOrUpdateServiceAuthOptions.json" + }, + "SearchCreateOrUpdateServiceDisableLocalAuth": { + "$ref": "./examples/SearchCreateOrUpdateServiceDisableLocalAuth.json" + }, + "SearchCreateOrUpdateServiceWithCmkEnforcement": { + "$ref": "./examples/SearchCreateOrUpdateServiceWithCmkEnforcement.json" + }, + "SearchCreateOrUpdateServiceWithDataExfiltration": { + "$ref": "./examples/SearchCreateOrUpdateServiceWithDataExfiltration.json" + }, + "SearchCreateOrUpdateWithSemanticSearch": { + "$ref": "./examples/SearchCreateOrUpdateWithSemanticSearch.json" + } + }, + "description": "Creates or updates a search service in the given resource group. If the search service already exists, all properties will be updated with the given values.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "name": "searchServiceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure AI Search service to create or update. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length. Search service names must be globally unique since they are part of the service URI (https://.search.windows.net). You cannot change the service name after the service is created." + }, + { + "name": "service", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchService" + }, + "description": "The definition of the search service to create or update." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The existing service definition was successfully updated. If you changed the number of replicas or partitions, the scale operation will happen asynchronously. You can check the status of a scale operation through the provisioningState property of a Get Service request.", + "schema": { + "$ref": "#/definitions/SearchService" + } + }, + "201": { + "description": "If you requested creation of a free search service, the service is now provisioned and ready to use, subject to DNS propagation delay. For other SKU types, provisioning happens asynchronously. You can check the status of a scale operation through the provisioningState property of a Get Service request.", + "schema": { + "$ref": "#/definitions/SearchService" + } + }, + "default": { + "description": "HTTP 400 (Bad Request): The given service name or service definition is invalid. See the error code and message in the response for details. HTTP 404 (Not Found): The subscription or resource group could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Services" + ], + "operationId": "Services_Update", + "x-ms-examples": { + "SearchUpdateService": { + "$ref": "./examples/SearchUpdateService.json" + }, + "SearchUpdateServiceToRemoveIdentity": { + "$ref": "./examples/SearchUpdateServiceToRemoveIdentity.json" + }, + "SearchUpdateServiceToAllowAccessFromPublicCustomIPs": { + "$ref": "./examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPs.json" + }, + "SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass": { + "$ref": "./examples/SearchUpdateServiceToAllowAccessFromPublicCustomIPsAndBypass.json" + }, + "SearchUpdateServiceToAllowAccessFromPrivateEndpoints": { + "$ref": "./examples/SearchUpdateServiceToAllowAccessFromPrivateEndpoints.json" + }, + "SearchUpdateServiceAuthOptions": { + "$ref": "./examples/SearchUpdateServiceAuthOptions.json" + }, + "SearchUpdateServiceDisableLocalAuth": { + "$ref": "./examples/SearchUpdateServiceDisableLocalAuth.json" + }, + "SearchUpdateServiceWithCmkEnforcement": { + "$ref": "./examples/SearchUpdateServiceWithCmkEnforcement.json" + }, + "SearchUpdateServiceWithDataExfiltration": { + "$ref": "./examples/SearchUpdateServiceWithDataExfiltration.json" + }, + "SearchUpdateServiceWithSemanticSearch": { + "$ref": "./examples/SearchUpdateServiceWithSemanticSearch.json" + }, + "SearchUpdateServiceWithSku": { + "$ref": "./examples/SearchUpdateServiceWithSku.json" + } + }, + "description": "Updates an existing search service in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "name": "searchServiceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure AI Search service to update." + }, + { + "name": "service", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchServiceUpdate" + }, + "description": "The definition of the search service to update." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The existing service definition was successfully updated. If you changed the number of replicas or partitions, the scale operation will happen asynchronously. You can check the status of a scale operation through the provisioningState property of a Get Service request.", + "schema": { + "$ref": "#/definitions/SearchService" + } + }, + "default": { + "description": "HTTP 400 (Bad Request): The given service definition is invalid or you attempted to change a property that is immutable. See the error code and message in the response for details. HTTP 404 (Not Found): The subscription or resource group could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "get": { + "tags": [ + "Services" + ], + "operationId": "Services_Get", + "x-ms-examples": { + "SearchGetService": { + "$ref": "./examples/SearchGetService.json" + } + }, + "description": "Gets the search service with the given name in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The search service definition was successfully retrieved and is in the response. If you are polling for the completion of a provisioning or scale operation, you can check its status via the provisioningState property.", + "schema": { + "$ref": "#/definitions/SearchService" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, or search service name could not be found.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "Services" + ], + "operationId": "Services_Delete", + "x-ms-examples": { + "SearchDeleteService": { + "$ref": "./examples/SearchDeleteService.json" + } + }, + "description": "Deletes a search service in the given resource group, along with its associated resources.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The search service was successfully deleted." + }, + "204": { + "description": "The search service was successfully deleted." + }, + "404": { + "description": "The subscription, resource group, or search service could not be found." + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices": { + "get": { + "tags": [ + "Services" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "Services_ListByResourceGroup", + "x-ms-examples": { + "SearchListServicesByResourceGroup": { + "$ref": "./examples/SearchListServicesByResourceGroup.json" + } + }, + "description": "Gets a list of all Search services in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all search service definitions for the given resource group.", + "schema": { + "$ref": "#/definitions/SearchServiceListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/privateLinkResources": { + "get": { + "tags": [ + "PrivateLinkResources" + ], + "x-ms-pageable": { + "nextLinkName": null + }, + "operationId": "PrivateLinkResources_ListSupported", + "x-ms-examples": { + "ListSupportedPrivateLinkResources": { + "$ref": "./examples/ListSupportedPrivateLinkResources.json" + } + }, + "description": "Gets a list of all supported private link resource types for the given service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all supported private link resource types for the given service.", + "schema": { + "$ref": "#/definitions/PrivateLinkResourcesResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "put": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Update", + "x-ms-examples": { + "PrivateEndpointConnectionUpdate": { + "$ref": "./examples/UpdatePrivateEndpointConnection.json" + } + }, + "description": "Updates a private endpoint connection to the search service in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "name": "privateEndpointConnection", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The definition of the private endpoint connection to update." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The existing private endpoint connection definition was successfully updated.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "HTTP 400 (Bad Request): The given private endpoint connection name or the private endpoint connection definition is invalid. See the error code and message in the response for details. HTTP 404 (Not Found): The subscription, resource group, search service or private endpoint connection could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Get", + "x-ms-examples": { + "PrivateEndpointConnectionGet": { + "$ref": "./examples/GetPrivateEndpointConnection.json" + } + }, + "description": "Gets the details of the private endpoint connection to the search service in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The definition of the private endpoint connection was successfully retrieved and is in the response.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, search service or private endpoint connection could not be found.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "PrivateEndpointConnections" + ], + "operationId": "PrivateEndpointConnections_Delete", + "x-ms-examples": { + "PrivateEndpointConnectionDelete": { + "$ref": "./examples/DeletePrivateEndpointConnection.json" + } + }, + "description": "Disconnects the private endpoint connection and deletes it from the search service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The private endpoint connection was successfully disconnected and removed from the search service. The response will contain the updated definition of the private endpoint connection.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "404": { + "description": "The subscription, resource group, search service or private endpoint connection could not be found." + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/privateEndpointConnections": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "PrivateEndpointConnections_ListByService", + "x-ms-examples": { + "ListPrivateEndpointConnectionsByService": { + "$ref": "./examples/ListPrivateEndpointConnectionsByService.json" + } + }, + "description": "Gets a list of all private endpoint connections in the given service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all private endpoint connections for the given service.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/sharedPrivateLinkResources/{sharedPrivateLinkResourceName}": { + "put": { + "tags": [ + "SharedPrivateLinkResources" + ], + "operationId": "SharedPrivateLinkResources_CreateOrUpdate", + "x-ms-examples": { + "SharedPrivateLinkResourceCreateOrUpdate": { + "$ref": "./examples/CreateOrUpdateSharedPrivateLinkResource.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "description": "Initiates the creation or update of a shared private link resource managed by the search service in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/SharedPrivateLinkResourceNameParameter" + }, + { + "name": "sharedPrivateLinkResource", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + }, + "description": "The definition of the shared private link resource to create or update." + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The details of the shared private link resource that was created or updated.", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + }, + "202": { + "description": "The shared private link resource create or update operation has been accepted and will complete asynchronously." + }, + "default": { + "description": "HTTP 400 (Bad Request): The given shared private link resource name or the shared private link resource definition is invalid; See the error code and message in the response for details. HTTP 404 (Not Found): The subscription, resource group, search service or shared private link resource could not be found. HTTP 409 (Conflict): The specified subscription is disabled.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "get": { + "tags": [ + "SharedPrivateLinkResources" + ], + "operationId": "SharedPrivateLinkResources_Get", + "x-ms-examples": { + "SharedPrivateLinkResourceGet": { + "$ref": "./examples/GetSharedPrivateLinkResource.json" + } + }, + "description": "Gets the details of the shared private link resource managed by the search service in the given resource group.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/SharedPrivateLinkResourceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The definition of the shared private link resource was successfully retrieved and is in the response.", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResource" + } + }, + "default": { + "description": "HTTP 404 (Not Found): The subscription, resource group, search service or shared private link resource could not be found.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "SharedPrivateLinkResources" + ], + "operationId": "SharedPrivateLinkResources_Delete", + "x-ms-examples": { + "SharedPrivateLinkResourceDelete": { + "$ref": "./examples/DeleteSharedPrivateLinkResource.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "description": "Initiates the deletion of the shared private link resource from the search service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/SharedPrivateLinkResourceNameParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "The shared private link resource deletion operation was accepted and will complete asynchronously." + }, + "204": { + "description": "The backing private endpoint for the shared private link resource could not be found." + }, + "404": { + "description": "The subscription, resource group, search service or shared private link resource could not be found." + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/sharedPrivateLinkResources": { + "get": { + "tags": [ + "SharedPrivateLinkResources" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "SharedPrivateLinkResources_ListByService", + "x-ms-examples": { + "ListSharedPrivateLinkResourcesByService": { + "$ref": "./examples/ListSharedPrivateLinkResourcesByService.json" + } + }, + "description": "Gets a list of all shared private link resources managed by the given service.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all shared private link resources managed by the given service.", + "schema": { + "$ref": "#/definitions/SharedPrivateLinkResourceListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Search/searchServices": { + "get": { + "tags": [ + "Services" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "Services_ListBySubscription", + "x-ms-examples": { + "SearchListServicesBySubscription": { + "$ref": "./examples/SearchListServicesBySubscription.json" + } + }, + "description": "Gets a list of all Search services in the given subscription.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all search service definitions for the given subscription.", + "schema": { + "$ref": "#/definitions/SearchServiceListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Search/checkNameAvailability": { + "post": { + "tags": [ + "Services" + ], + "description": "Checks whether or not the given search service name is available for use. Search service names must be globally unique since they are part of the service URI (https://.search.windows.net).", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "operationId": "Services_CheckNameAvailability", + "x-ms-examples": { + "SearchCheckNameAvailability": { + "$ref": "./examples/SearchCheckNameAvailability.json" + } + }, + "parameters": [ + { + "name": "checkNameAvailabilityInput", + "in": "body", + "description": "The resource name and type to check.", + "x-ms-client-flatten": true, + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityInput" + } + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The name check completed. The response contains details of whether the name is valid and available. If the name is invalid, the response also contains a message explaining why not.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityOutput" + } + }, + "default": { + "description": "HTTP 400 (Bad Request): The given resource type is not 'searchServices'.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages": { + "get": { + "tags": [ + "Usages" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "operationId": "Usages_ListBySubscription", + "x-ms-examples": { + "GetQuotaUsagesList": { + "$ref": "./examples/GetQuotaUsagesList.json" + } + }, + "description": "Get a list of all Azure AI Search quota usages across the subscription.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the list of all search service quota usages for the given subscription.", + "schema": { + "$ref": "#/definitions/QuotaUsagesListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Search/locations/{location}/usages/{skuName}": { + "get": { + "tags": [ + "Usages" + ], + "operationId": "UsageBySubscriptionSku", + "x-ms-examples": { + "GetQuotaUsage": { + "$ref": "./examples/GetQuotaUsage.json" + } + }, + "description": "Gets the quota usage for a search SKU in the given subscription.", + "externalDocs": { + "url": "https://aka.ms/search-manage" + }, + "parameters": [ + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/SkuNameParameter" + } + ], + "responses": { + "200": { + "description": "The operation succeeded. The response contains the quota usage of a search service SKU for the given subscription.", + "schema": { + "$ref": "#/definitions/QuotaUsageResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/networkSecurityPerimeterConfigurations": { + "get": { + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "description": "Gets a list of network security perimeter configurations for a search service.", + "operationId": "NetworkSecurityPerimeterConfigurations_ListByService", + "x-ms-examples": { + "List NSP configs by search service": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationsListByService.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the list of configurations.", + "schema": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationListResult" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/networkSecurityPerimeterConfigurations/{nspConfigName}": { + "get": { + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "description": "Gets a network security perimeter configuration.", + "operationId": "NetworkSecurityPerimeterConfigurations_Get", + "x-ms-examples": { + "Get an NSP config by name": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationsGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "name": "nspConfigName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\\.[a-z][a-z0-9]*$", + "minLength": 38, + "maxLength": 100, + "description": "The network security configuration name." + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved the configuration.", + "schema": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/networkSecurityPerimeterConfigurations/{nspConfigName}/reconcile": { + "post": { + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "description": "Reconcile network security perimeter configuration for the Azure AI Search resource provider. This triggers a manual resync with network security perimeter configurations by ensuring the search service carries the latest configuration.", + "operationId": "NetworkSecurityPerimeterConfigurations_Reconcile", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "name": "nspConfigName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\\.[a-z][a-z0-9]*$", + "minLength": 38, + "maxLength": 100, + "description": "The network security configuration name." + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Reconcile network security perimeter configuration operation accepted.", + "headers": { + "Location": { + "type": "string" + } + } + }, + "default": { + "description": "An unexpected error occurred during the operation.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-examples": { + "Reconcile NSP Config": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationsReconcile.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/upgrade": { + "post": { + "tags": [ + "Services" + ], + "operationId": "Service_Upgrade", + "x-ms-examples": { + "UpgradeSearchServiceToLatestVersion": { + "$ref": "./examples/UpgradeSearchServiceToLatestVersion.json" + } + }, + "description": "Upgrades the Azure AI Search service to the latest version available.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/SearchServiceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Search service has been upgraded to the latest version.", + "schema": { + "$ref": "#/definitions/SearchService" + } + }, + "202": { + "description": "The long running operation for upgrading the service to the latest version was queued successfully. You can check the status of the operation through the provisioningState property of a Get Service request.", + "headers": { + "Location": { + "type": "string" + } + } + }, + "default": { + "description": "HTTP 400 (Bad Request): There is not upgrade available for the current service. HTTP 404 (Not Found): The subscription or resource group could not be found.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + } + }, + "definitions": { + "CheckNameAvailabilityInput": { + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "The search service name to validate. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length.", + "type": "string" + }, + "type": { + "description": "The type of the resource whose name is to be validated. This value must always be 'searchServices'.", + "type": "string", + "enum": [ + "searchServices" + ], + "x-ms-enum": { + "name": "ResourceType", + "modelAsString": false, + "values": [ + { + "value": "searchServices", + "name": "SearchServices", + "description": "'searchServices' is the only resource type whose name can be validated." + } + ] + } + } + }, + "description": "Input of check name availability API." + }, + "CheckNameAvailabilityOutput": { + "type": "object", + "properties": { + "nameAvailable": { + "x-ms-client-name": "IsNameAvailable", + "description": "A value indicating whether the name is available.", + "type": "boolean", + "readOnly": true + }, + "reason": { + "description": "The reason why the name is not available. 'Invalid' indicates the name provided does not match the naming requirements (incorrect length, unsupported characters, etc.). 'AlreadyExists' indicates that the name is already in use and is therefore unavailable.", + "type": "string", + "readOnly": true, + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "UnavailableNameReason", + "modelAsString": true, + "values": [ + { + "value": "Invalid", + "name": "Invalid", + "description": "The search service name doesn't match naming requirements." + }, + { + "value": "AlreadyExists", + "name": "AlreadyExists", + "description": "The search service name is already assigned to a different search service." + } + ] + } + }, + "message": { + "description": "A message that explains why the name is invalid and provides resource naming requirements. Available only if 'Invalid' is returned in the 'reason' property.", + "type": "string", + "readOnly": true + } + }, + "description": "Output of check name availability API." + }, + "AdminKeyResult": { + "properties": { + "primaryKey": { + "readOnly": true, + "type": "string", + "description": "The primary admin API key of the search service." + }, + "secondaryKey": { + "readOnly": true, + "type": "string", + "description": "The secondary admin API key of the search service." + } + }, + "description": "Response containing the primary and secondary admin API keys for a given Azure AI Search service." + }, + "QueryKey": { + "properties": { + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the query API key. Query names are optional, but assigning a name can help you remember how it's used." + }, + "key": { + "readOnly": true, + "type": "string", + "description": "The value of the query API key." + } + }, + "description": "Describes an API key for a given Azure AI Search service that conveys read-only permissions on the docs collection of an index." + }, + "ListQueryKeysResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/QueryKey" + }, + "description": "The query keys for the Azure AI Search service." + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "Request URL that can be used to query next page of query keys. Returned when the total number of requested query keys exceed maximum page size." + } + }, + "description": "Response containing the query API keys for a given Azure AI Search service.", + "x-ms-external": true + }, + "Sku": { + "properties": { + "name": { + "type": "string", + "description": "The SKU of the search service. Valid values include: 'free': Shared service. 'basic': Dedicated service with up to 3 replicas. 'standard': Dedicated service with up to 12 partitions and 12 replicas. 'standard2': Similar to standard, but with more capacity per search unit. 'standard3': The largest Standard offering with up to 12 partitions and 12 replicas (or up to 3 partitions with more indexes if you also set the hostingMode property to 'highDensity'). 'storage_optimized_l1': Supports 1TB per partition, up to 12 partitions. 'storage_optimized_l2': Supports 2TB per partition, up to 12 partitions.'", + "enum": [ + "free", + "basic", + "standard", + "standard2", + "standard3", + "storage_optimized_l1", + "storage_optimized_l2" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "value": "free", + "name": "Free", + "description": "Free tier, with no SLA guarantees and a subset of the features offered on billable tiers." + }, + { + "value": "basic", + "name": "Basic", + "description": "Billable tier for a dedicated service having up to 3 replicas." + }, + { + "value": "standard", + "name": "Standard", + "description": "Billable tier for a dedicated service having up to 12 partitions and 12 replicas." + }, + { + "value": "standard2", + "name": "Standard2", + "description": "Similar to 'standard', but with more capacity per search unit." + }, + { + "value": "standard3", + "name": "Standard3", + "description": " The largest Standard offering with up to 12 partitions and 12 replicas (or up to 3 partitions with more indexes if you also set the hostingMode property to 'highDensity')." + }, + { + "value": "storage_optimized_l1", + "name": "StorageOptimizedL1", + "description": "Billable tier for a dedicated service that supports 1TB per partition, up to 12 partitions." + }, + { + "value": "storage_optimized_l2", + "name": "StorageOptimizedL2", + "description": "Billable tier for a dedicated service that supports 2TB per partition, up to 12 partitions." + } + ] + } + } + }, + "description": "Defines the SKU of a search service, which determines billing rate and capacity limits.", + "externalDocs": { + "url": "https://azure.microsoft.com/documentation/articles/search-sku-tier/" + } + }, + "DataPlaneAuthOptions": { + "type": "object", + "properties": { + "apiKeyOnly": { + "type": "object", + "properties": {}, + "description": "Indicates that only the API key can be used for authentication." + }, + "aadOrApiKey": { + "$ref": "#/definitions/DataPlaneAadOrApiKeyAuthOption", + "description": "Indicates that either the API key or an access token from a Microsoft Entra ID tenant can be used for authentication." + } + }, + "description": "Defines the options for how the search service authenticates a data plane request. This cannot be set if 'disableLocalAuth' is set to true." + }, + "DataPlaneAadOrApiKeyAuthOption": { + "type": "object", + "properties": { + "aadAuthFailureMode": { + "type": "string", + "description": "Describes what response the data plane API of a search service would send for requests that failed authentication.", + "enum": [ + "http403", + "http401WithBearerChallenge" + ], + "x-ms-enum": { + "name": "AadAuthFailureMode", + "modelAsString": false, + "values": [ + { + "value": "http403", + "name": "Http403", + "description": "Indicates that requests that failed authentication should be presented with an HTTP status code of 403 (Forbidden)." + }, + { + "value": "http401WithBearerChallenge", + "name": "Http401WithBearerChallenge", + "description": "Indicates that requests that failed authentication should be presented with an HTTP status code of 401 (Unauthorized) and present a Bearer Challenge." + } + ] + } + } + }, + "description": "Indicates that either the API key or an access token from a Microsoft Entra ID tenant can be used for authentication." + }, + "DisabledDataExfiltrationOption": { + "type": "string", + "enum": [ + "All" + ], + "x-ms-enum": { + "name": "SearchDisabledDataExfiltrationOption", + "modelAsString": true, + "values": [ + { + "value": "All", + "name": "All", + "description": "Indicates that all data exfiltration scenarios are disabled." + } + ] + }, + "description": "A specific data exfiltration scenario that is disabled for the service." + }, + "EncryptionWithCmk": { + "type": "object", + "properties": { + "enforcement": { + "description": "Describes how a search service should enforce compliance if it finds objects that aren't encrypted with the customer-managed key.", + "type": "string", + "enum": [ + "Disabled", + "Enabled", + "Unspecified" + ], + "x-ms-enum": { + "name": "SearchEncryptionWithCmk", + "modelAsString": false, + "values": [ + { + "value": "Disabled", + "name": "Disabled", + "description": "No enforcement of customer-managed key encryption will be made. Only the built-in service-managed encryption is used." + }, + { + "value": "Enabled", + "name": "Enabled", + "description": "Search service will be marked as non-compliant if one or more objects aren't encrypted with a customer-managed key." + }, + { + "value": "Unspecified", + "name": "Unspecified", + "description": "Enforcement policy is not explicitly specified, with the behavior being the same as if it were set to 'Disabled'." + } + ] + } + }, + "encryptionComplianceStatus": { + "readOnly": true, + "description": "Returns the status of search service compliance with respect to non-CMK-encrypted objects. If a service has more than one unencrypted object, and enforcement is enabled, the service is marked as noncompliant.", + "type": "string", + "enum": [ + "Compliant", + "NonCompliant" + ], + "x-ms-enum": { + "name": "SearchEncryptionComplianceStatus", + "modelAsString": false, + "values": [ + { + "value": "Compliant", + "name": "Compliant", + "description": "Indicates that the search service is compliant, either because the number of non-CMK-encrypted objects is zero or enforcement is disabled." + }, + { + "value": "NonCompliant", + "name": "NonCompliant", + "description": "Indicates that the search service has more than one non-CMK-encrypted objects." + } + ] + } + } + }, + "description": "Describes a policy that determines how resources within the search service are to be encrypted with customer managed keys." + }, + "PrivateEndpointConnection": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Describes the properties of an existing private endpoint connection to the Azure AI Search service." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/Resource" + } + ], + "description": "Describes an existing private endpoint connection to the Azure AI Search service." + }, + "NetworkRuleSet": { + "properties": { + "ipRules": { + "type": "array", + "description": "A list of IP restriction rules that defines the inbound network(s) with allowing access to the search service endpoint. At the meantime, all other public IP networks are blocked by the firewall. These restriction rules are applied only when the 'publicNetworkAccess' of the search service is 'enabled'; otherwise, traffic over public interface is not allowed even with any public IP rules, and private endpoint connections would be the exclusive access method.", + "items": { + "$ref": "#/definitions/IpRule" + } + }, + "bypass": { + "type": "string", + "enum": [ + "None", + "AzurePortal", + "AzureServices" + ], + "x-ms-enum": { + "name": "SearchBypass", + "modelAsString": true, + "values": [ + { + "value": "None", + "name": "None", + "description": "Indicates that no origin can bypass the rules defined in the 'ipRules' section. This is the default." + }, + { + "value": "AzurePortal", + "name": "AzurePortal", + "description": "Indicates that requests originating from the Azure portal can bypass the rules defined in the 'ipRules' section." + }, + { + "value": "AzureServices", + "name": "AzureServices", + "description": "Indicates that requests originating from Azure trusted services can bypass the rules defined in the 'ipRules' section." + } + ] + }, + "description": "Possible origins of inbound traffic that can bypass the rules defined in the 'ipRules' section." + } + }, + "description": "Network specific rules that determine how the Azure AI Search service may be reached." + }, + "IpRule": { + "properties": { + "value": { + "type": "string", + "description": "Value corresponding to a single IPv4 address (eg., 123.1.2.3) or an IP range in CIDR format (eg., 123.1.2.3/24) to be allowed." + } + }, + "description": "The IP restriction rule of the Azure AI Search service." + }, + "PrivateEndpointConnectionProperties": { + "properties": { + "privateEndpoint": { + "properties": { + "id": { + "type": "string", + "description": "The resource ID of the private endpoint resource from Microsoft.Network provider." + } + }, + "description": "The private endpoint resource from Microsoft.Network provider." + }, + "privateLinkServiceConnectionState": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Status of the the private link service connection. Valid values are Pending, Approved, Rejected, or Disconnected.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateLinkServiceConnectionStatus", + "modelAsString": false, + "values": [ + { + "value": "Pending", + "name": "Pending", + "description": "The private endpoint connection has been created and is pending approval." + }, + { + "value": "Approved", + "name": "Approved", + "description": "The private endpoint connection is approved and is ready for use." + }, + { + "value": "Rejected", + "name": "Rejected", + "description": "The private endpoint connection has been rejected and cannot be used." + }, + { + "value": "Disconnected", + "name": "Disconnected", + "description": "The private endpoint connection has been removed from the service." + } + ] + } + }, + "description": { + "type": "string", + "description": "The description for the private link service connection state." + }, + "actionsRequired": { + "type": "string", + "description": "A description of any extra actions that may be required.", + "default": "None" + } + }, + "description": "Describes the current state of an existing Azure Private Link service connection to the private endpoint." + }, + "groupId": { + "type": "string", + "description": "The group ID of the Azure resource for which the private link service is for." + }, + "provisioningState": { + "type": "string", + "description": "The provisioning state of the private link service connection. Valid values are Updating, Deleting, Failed, Succeeded, Incomplete, or Canceled.", + "enum": [ + "Updating", + "Deleting", + "Failed", + "Succeeded", + "Incomplete", + "Canceled" + ], + "x-ms-enum": { + "name": "PrivateLinkServiceConnectionProvisioningState", + "modelAsString": true, + "values": [ + { + "value": "Updating", + "name": "Updating", + "description": "The private link service connection is in the process of being created along with other resources for it to be fully functional." + }, + { + "value": "Deleting", + "name": "Deleting", + "description": "The private link service connection is in the process of being deleted." + }, + { + "value": "Failed", + "name": "Failed", + "description": "The private link service connection has failed to be provisioned or deleted." + }, + { + "value": "Succeeded", + "name": "Succeeded", + "description": "The private link service connection has finished provisioning and is ready for approval." + }, + { + "value": "Incomplete", + "name": "Incomplete", + "description": "Provisioning request for the private link service connection resource has been accepted but the process of creation has not commenced yet." + }, + { + "value": "Canceled", + "name": "Canceled", + "description": "Provisioning request for the private link service connection resource has been canceled." + } + ] + } + } + }, + "description": "Describes the properties of an existing private endpoint connection to the search service." + }, + "PrivateEndpointConnectionListResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The list of private endpoint connections." + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "Request URL that can be used to query next page of private endpoint connections. Returned when the total number of requested private endpoint connections exceed maximum page size." + } + }, + "description": "Response containing a list of private endpoint connections.", + "x-ms-external": true + }, + "SemanticSearch": { + "type": "string", + "enum": [ + "disabled", + "free", + "standard" + ], + "x-ms-enum": { + "name": "SearchSemanticSearch", + "modelAsString": true, + "values": [ + { + "value": "disabled", + "name": "disabled", + "description": "Indicates that semantic reranker is disabled for the search service. This is the default." + }, + { + "value": "free", + "name": "free", + "description": "Enables semantic reranker on a search service and indicates that it is to be used within the limits of the free plan. The free plan would cap the volume of semantic ranking requests and is offered at no extra charge. This is the default for newly provisioned search services." + }, + { + "value": "standard", + "name": "standard", + "description": "Enables semantic reranker on a search service as a billable feature, with higher throughput and volume of semantically reranked queries." + } + ] + }, + "description": "Sets options that control the availability of semantic search. This configuration is only possible for certain Azure AI Search SKUs in certain locations." + }, + "SharedPrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/SharedPrivateLinkResourceProperties", + "description": "Describes the properties of a shared private link resource managed by the Azure AI Search service." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/Resource" + } + ], + "description": "Describes a shared private link resource managed by the Azure AI Search service." + }, + "SharedPrivateLinkResourceProperties": { + "properties": { + "privateLinkResourceId": { + "type": "string", + "description": "The resource ID of the resource the shared private link resource is for." + }, + "groupId": { + "type": "string", + "description": "The group ID from the provider of resource the shared private link resource is for." + }, + "requestMessage": { + "type": "string", + "description": "The message for requesting approval of the shared private link resource." + }, + "resourceRegion": { + "type": "string", + "description": "Optional. Can be used to specify the Azure Resource Manager location of the resource for which a shared private link is being created. This is only required for those resources whose DNS configuration are regional (such as Azure Kubernetes Service).", + "externalDocs": { + "description": "List of all Azure resources which have a regional DNS configuration requirement can be found here.", + "url": "https://docs.microsoft.com/azure/private-link/private-endpoint-dns" + } + }, + "status": { + "type": "string", + "description": "Status of the shared private link resource. Valid values are Pending, Approved, Rejected or Disconnected.", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "SharedPrivateLinkResourceStatus", + "modelAsString": true, + "values": [ + { + "value": "Pending", + "name": "Pending", + "description": "The shared private link resource has been created and is pending approval." + }, + { + "value": "Approved", + "name": "Approved", + "description": "The shared private link resource is approved and is ready for use." + }, + { + "value": "Rejected", + "name": "Rejected", + "description": "The shared private link resource has been rejected and cannot be used." + }, + { + "value": "Disconnected", + "name": "Disconnected", + "description": "The shared private link resource has been removed from the service." + } + ] + } + }, + "provisioningState": { + "type": "string", + "description": "The provisioning state of the shared private link resource. Valid values are Updating, Deleting, Failed, Succeeded or Incomplete.", + "enum": [ + "Updating", + "Deleting", + "Failed", + "Succeeded", + "Incomplete" + ], + "x-ms-enum": { + "name": "SharedPrivateLinkResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "value": "Updating", + "name": "Updating", + "description": "The shared private link resource is in the process of being created along with other resources for it to be fully functional." + }, + { + "value": "Deleting", + "name": "Deleting", + "description": "The shared private link resource is in the process of being deleted." + }, + { + "value": "Failed", + "name": "Failed", + "description": "The shared private link resource has failed to be provisioned or deleted." + }, + { + "value": "Succeeded", + "name": "Succeeded", + "description": "The shared private link resource has finished provisioning and is ready for approval." + }, + { + "value": "Incomplete", + "name": "Incomplete", + "description": "Provisioning request for the shared private link resource has been accepted but the process of creation has not commenced yet." + } + ] + } + } + }, + "description": "Describes the properties of an existing shared private link resource managed by the Azure AI Search service." + }, + "SharedPrivateLinkResourceListResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/SharedPrivateLinkResource" + }, + "description": "The list of shared private link resources." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of shared private link resources, if there are any." + } + }, + "description": "Response containing a list of shared private link resources.", + "x-ms-external": true + }, + "PrivateLinkResourcesResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + }, + "description": "The list of supported Private Link Resources." + } + }, + "description": "Response containing a list of supported Private Link Resources.", + "x-ms-external": true + }, + "PrivateLinkResource": { + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "readOnly": true, + "description": "Describes the properties of a supported private link resource for the Azure AI Search service." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/Resource" + } + ], + "description": "Describes a supported private link resource for the Azure AI Search service." + }, + "PrivateLinkResourceProperties": { + "properties": { + "groupId": { + "readOnly": true, + "type": "string", + "description": "The group ID of the private link resource." + }, + "requiredMembers": { + "readOnly": true, + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of required members of the private link resource." + }, + "requiredZoneNames": { + "readOnly": true, + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of required DNS zone names of the private link resource." + }, + "shareablePrivateLinkResourceTypes": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/ShareablePrivateLinkResourceType" + }, + "description": "The list of resources that are onboarded to private link service, that are supported by Azure AI Search." + } + }, + "description": "Describes the properties of a supported private link resource for the Azure AI Search service. For a given API version, this represents the 'supported' groupIds when creating a shared private link resource." + }, + "ShareablePrivateLinkResourceType": { + "properties": { + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource type that has been onboarded to private link service, supported by Azure AI Search." + }, + "properties": { + "$ref": "#/definitions/ShareablePrivateLinkResourceProperties", + "readOnly": true, + "description": "Describes the properties of a resource type that has been onboarded to private link service, supported by Azure AI Search." + } + }, + "description": "Describes an resource type that has been onboarded to private link service, supported by Azure AI Search." + }, + "ShareablePrivateLinkResourceProperties": { + "properties": { + "type": { + "readOnly": true, + "type": "string", + "description": "The resource provider type for the resource that has been onboarded to private link service, supported by Azure AI Search." + }, + "groupId": { + "readOnly": true, + "type": "string", + "description": "The resource provider group id for the resource that has been onboarded to private link service, supported by Azure AI Search." + }, + "description": { + "readOnly": true, + "type": "string", + "description": "The description of the resource type that has been onboarded to private link service, supported by Azure AI Search." + } + }, + "description": "Describes the properties of a resource type that has been onboarded to private link service, supported by Azure AI Search." + }, + "SearchService": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SearchServiceProperties", + "description": "Properties of the search service." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "The SKU of the search service, which determines price tier and capacity limits. This property is required when creating a new search service.", + "externalDocs": { + "url": "https://azure.microsoft.com/documentation/articles/search-sku-tier/" + } + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The identity of the resource." + }, + "systemData": { + "readOnly": true, + "description": "Azure Resource Manager metadata of the search service containing createdBy and modifiedBy information.", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/systemData" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + } + ], + "description": "Describes an Azure AI Search service and its current state." + }, + "SearchServiceUpdate": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/SearchServiceProperties", + "description": "Properties of the search service." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "The SKU of the search service, which determines price tier and capacity limits. This property is required when creating a new search service.", + "externalDocs": { + "url": "https://azure.microsoft.com/documentation/articles/search-sku-tier/" + } + }, + "location": { + "type": "string", + "description": "The geographic location of the resource. This must be one of the supported and registered Azure geo regions (for example, West US, East US, Southeast Asia, and so forth). This property is required when creating a new resource.", + "externalDocs": { + "url": "https://aka.ms/search-rp-info" + }, + "x-ms-mutability": [ + "create", + "read" + ] + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Tags to help categorize the resource in the Azure portal." + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "Details about the search service identity. A null value indicates that the search service has no identity assigned." + }, + "systemData": { + "readOnly": true, + "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/systemData" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/Resource" + } + ], + "description": "The parameters used to update an Azure AI Search service." + }, + "SearchServiceProperties": { + "properties": { + "replicaCount": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 12, + "default": 1, + "description": "The number of replicas in the search service. If specified, it must be a value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU." + }, + "partitionCount": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 12, + "default": 1, + "description": "The number of partitions in the search service; if specified, it can be 1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3' services with hostingMode set to 'highDensity', the allowed values are between 1 and 3." + }, + "endpoint": { + "type": "string", + "format": "uri", + "description": "The endpoint of the Azure AI Search service." + }, + "hostingMode": { + "type": "string", + "default": "default", + "description": "Applicable only for the standard3 SKU. You can set this property to enable up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default' or 'highDensity'. For all other SKUs, this value must be 'default'.", + "enum": [ + "default", + "highDensity" + ], + "x-ms-enum": { + "name": "HostingMode", + "modelAsString": false, + "values": [ + { + "value": "default", + "name": "Default", + "description": "The limit on number of indexes is determined by the default limits for the SKU." + }, + { + "value": "highDensity", + "name": "HighDensity", + "description": "Only application for standard3 SKU, where the search service can have up to 1000 indexes." + } + ] + } + }, + "computeType": { + "type": "string", + "description": "Configure this property to support the search service using either the default compute or Azure Confidential Compute.", + "enum": [ + "default", + "confidential" + ], + "x-ms-enum": { + "name": "ComputeType", + "modelAsString": true, + "values": [ + { + "value": "default", + "name": "Default", + "description": "Create the service with the default compute." + }, + { + "value": "confidential", + "name": "Confidential", + "description": "Create the service with Azure Confidential Compute." + } + ] + } + }, + "publicNetworkAccess": { + "type": "string", + "default": "enabled", + "description": "This value can be set to 'enabled' to avoid breaking changes on existing customer resources and templates. If set to 'disabled', traffic over public interface is not allowed, and private endpoint connections would be the exclusive access method.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true, + "values": [ + { + "value": "enabled", + "name": "Enabled", + "description": "The search service is accessible from traffic originating from the public internet." + }, + { + "value": "disabled", + "name": "Disabled", + "description": "The search service is not accessible from traffic originating from the public internet. Access is only permitted over approved private endpoint connections." + } + ] + } + }, + "status": { + "readOnly": true, + "type": "string", + "description": "The status of the search service. Possible values include: 'running': The search service is running and no provisioning operations are underway. 'provisioning': The search service is being provisioned or scaled up or down. 'deleting': The search service is being deleted. 'degraded': The search service is degraded. This can occur when the underlying search units are not healthy. The search service is most likely operational, but performance might be slow and some requests might be dropped. 'disabled': The search service is disabled. In this state, the service will reject all API requests. 'error': The search service is in an error state. 'stopped': The search service is in a subscription that's disabled. If your service is in the degraded, disabled, or error states, it means the Azure AI Search team is actively investigating the underlying issue. Dedicated services in these states are still chargeable based on the number of search units provisioned.", + "enum": [ + "running", + "provisioning", + "deleting", + "degraded", + "disabled", + "error", + "stopped" + ], + "x-ms-enum": { + "name": "SearchServiceStatus", + "modelAsString": false, + "values": [ + { + "value": "running", + "name": "Running", + "description": "The search service is running and no provisioning operations are underway." + }, + { + "value": "provisioning", + "name": "Provisioning", + "description": "The search service is being provisioned or scaled up or down." + }, + { + "value": "deleting", + "name": "Deleting", + "description": "The search service is being deleted." + }, + { + "value": "degraded", + "name": "Degraded", + "description": "The search service is degraded because underlying search units are not healthy." + }, + { + "value": "disabled", + "name": "Disabled", + "description": "The search service is disabled and all API requests will be rejected." + }, + { + "value": "error", + "name": "Error", + "description": "The search service is in error state, indicating either a failure to provision or to be deleted." + }, + { + "value": "stopped", + "name": "Stopped", + "description": "The search service is in a subscription that's disabled." + } + ] + } + }, + "statusDetails": { + "readOnly": true, + "type": "string", + "description": "The details of the search service status." + }, + "provisioningState": { + "readOnly": true, + "type": "string", + "description": "The state of the last provisioning operation performed on the search service. Provisioning is an intermediate state that occurs while service capacity is being established. After capacity is set up, provisioningState changes to either 'Succeeded' or 'Failed'. Client applications can poll provisioning status (the recommended polling interval is from 30 seconds to one minute) by using the Get Search Service operation to see when an operation is completed. If you are using the free service, this value tends to come back as 'Succeeded' directly in the call to Create search service. This is because the free service uses capacity that is already set up.", + "enum": [ + "Succeeded", + "Provisioning", + "Failed" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false, + "values": [ + { + "value": "Succeeded", + "name": "Succeeded", + "description": "The last provisioning operation has completed successfully." + }, + { + "value": "Provisioning", + "name": "Provisioning", + "description": "The search service is being provisioned or scaled up or down." + }, + { + "value": "Failed", + "name": "Failed", + "description": "The last provisioning operation has failed." + } + ] + } + }, + "networkRuleSet": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Network specific rules that determine how the Azure AI Search service may be reached." + }, + "disabledDataExfiltrationOptions": { + "type": "array", + "items": { + "$ref": "#/definitions/DisabledDataExfiltrationOption" + }, + "description": "A list of data exfiltration scenarios that are explicitly disallowed for the search service. Currently, the only supported value is 'All' to disable all possible data export scenarios with more fine grained controls planned for the future." + }, + "encryptionWithCmk": { + "$ref": "#/definitions/EncryptionWithCmk", + "description": "Specifies any policy regarding encryption of resources (such as indexes) using customer manager keys within a search service." + }, + "disableLocalAuth": { + "type": "boolean", + "x-nullable": true, + "description": "When set to true, calls to the search service will not be permitted to utilize API keys for authentication. This cannot be set to true if 'dataPlaneAuthOptions' are defined." + }, + "authOptions": { + "$ref": "#/definitions/DataPlaneAuthOptions", + "description": "Defines the options for how the data plane API of a search service authenticates requests. This cannot be set if 'disableLocalAuth' is set to true." + }, + "semanticSearch": { + "$ref": "#/definitions/SemanticSearch", + "x-nullable": true, + "description": "Sets options that control the availability of semantic search. This configuration is only possible for certain Azure AI Search SKUs in certain locations." + }, + "privateEndpointConnections": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The list of private endpoint connections to the Azure AI Search service." + }, + "sharedPrivateLinkResources": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/SharedPrivateLinkResource" + }, + "description": "The list of shared private link resources managed by the Azure AI Search service." + }, + "eTag": { + "readOnly": true, + "type": "string", + "description": "A system generated property representing the service's etag that can be for optimistic concurrency control during updates." + }, + "upgradeAvailable": { + "readOnly": true, + "type": "boolean", + "description": "Indicates whether or not the search service has an upgrade available." + }, + "serviceUpgradeDate": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The date and time the search service was last upgraded. This field will be null until the service gets upgraded for the first time." + } + }, + "description": "Properties of the search service." + }, + "SearchServiceListResult": { + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/SearchService" + }, + "description": "The list of search services." + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "Request URL that can be used to query next page of search services. Returned when the total number of requested search services exceed maximum page size." + } + }, + "description": "Response containing a list of Azure AI Search services.", + "x-ms-external": true + }, + "AsyncOperationResult": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status of the long running asynchronous shared private link resource operation.", + "enum": [ + "Running", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "SharedPrivateLinkResourceAsyncOperationResult", + "modelAsString": true + } + } + }, + "description": "The details of a long running asynchronous shared private link resource operation." + }, + "CloudError": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "Describes a particular API error with an error code and a message." + }, + "message": { + "type": "string", + "description": "A brief description of the error that hints at what went wrong (for details/debugging information refer to the 'error.message' property)." + } + }, + "description": "Contains information about an API error.", + "x-ms-external": true + }, + "CloudErrorBody": { + "type": "object", + "description": "Describes a particular API error with an error code and a message.", + "properties": { + "code": { + "type": "string", + "description": "An error code that describes the error condition more precisely than an HTTP status code. Can be used to programmatically handle specific error cases." + }, + "message": { + "type": "string", + "description": "A message that describes the error in detail and provides debugging information." + }, + "target": { + "type": "string", + "description": "The target of the particular error (for example, the name of the property in error)." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudErrorBody" + }, + "description": "Contains nested errors that are related to this error." + } + }, + "x-ms-external": true + }, + "Operation": { + "description": "Describes a REST API operation.", + "type": "object", + "properties": { + "name": { + "description": "The name of the operation. This name is of the form {provider}/{resource}/{operation}.", + "readOnly": true, + "type": "string" + }, + "display": { + "description": "The object that describes the operation.", + "readOnly": true, + "properties": { + "provider": { + "description": "The friendly name of the resource provider.", + "readOnly": true, + "type": "string" + }, + "operation": { + "description": "The operation type: read, write, delete, listKeys/action, etc.", + "readOnly": true, + "type": "string" + }, + "resource": { + "description": "The resource type on which the operation is performed.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The friendly name of the operation.", + "readOnly": true, + "type": "string" + } + } + }, + "isDataAction": { + "type": "boolean", + "x-nullable": true, + "readOnly": true, + "description": "Describes if the specified operation is a data plane API operation. Operations where this value is not true are supported directly by the resource provider." + }, + "origin": { + "type": "string", + "readOnly": true, + "description": "Describes which originating entities are allowed to invoke this operation." + }, + "properties": { + "$ref": "#/definitions/OperationProperties", + "description": "Describes additional properties for this operation.", + "readOnly": true + } + } + }, + "OperationProperties": { + "type": "object", + "description": "Describes additional properties for this operation.", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/OperationServiceSpecification", + "description": "Specifications of the service for this operation.", + "readOnly": true + } + } + }, + "OperationServiceSpecification": { + "type": "object", + "description": "Specifications of the service for this operation.", + "properties": { + "metricSpecifications": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/OperationMetricsSpecification" + }, + "description": "Specifications of metrics for this operation." + }, + "logSpecifications": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/OperationLogsSpecification" + }, + "description": "Specifications of logs for this operation." + } + } + }, + "OperationMetricsSpecification": { + "type": "object", + "description": "Specifications of one type of metric for this operation.", + "readOnly": true, + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "The name of the metric specification." + }, + "displayName": { + "type": "string", + "readOnly": true, + "description": "The display name of the metric specification." + }, + "displayDescription": { + "type": "string", + "readOnly": true, + "description": "The display description of the metric specification." + }, + "unit": { + "type": "string", + "readOnly": true, + "description": "The unit for the metric specification." + }, + "aggregationType": { + "type": "string", + "readOnly": true, + "description": "The type of aggregation for the metric specification." + }, + "dimensions": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/OperationMetricDimension" + }, + "description": "Dimensions for the metric specification." + }, + "availabilities": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/OperationAvailability" + }, + "description": "Availabilities for the metric specification." + } + } + }, + "OperationMetricDimension": { + "type": "object", + "description": "Describes a particular dimension for the metric specification.", + "readOnly": true, + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "The name of the dimension." + }, + "displayName": { + "type": "string", + "readOnly": true, + "description": "The display name of the dimension." + } + } + }, + "OperationAvailability": { + "type": "object", + "description": "Describes a particular availability for the metric specification.", + "readOnly": true, + "properties": { + "timeGrain": { + "type": "string", + "readOnly": true, + "description": "The time grain for the dimension." + }, + "blobDuration": { + "type": "string", + "readOnly": true, + "description": "The blob duration for the dimension." + } + } + }, + "OperationLogsSpecification": { + "type": "object", + "description": "Specifications of one type of log for this operation.", + "readOnly": true, + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "The name of the log specification." + }, + "displayName": { + "type": "string", + "readOnly": true, + "description": "The display name of the log specification." + }, + "blobDuration": { + "type": "string", + "readOnly": true, + "description": "The blob duration for the log specification." + } + } + }, + "OperationListResult": { + "description": "The result of the request to list REST API operations. It contains a list of operations and a URL to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "description": "The list of operations by Azure AI Search, some supported by the resource provider and others by data plane APIs." + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "The URL to get the next set of operation list results, if any." + } + } + }, + "Identity": { + "properties": { + "principalId": { + "readOnly": true, + "type": "string", + "description": "The principal ID of the system-assigned identity of the search service." + }, + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The tenant ID of the system-assigned identity of the search service." + }, + "type": { + "type": "string", + "description": "The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an identity created by the system and a set of user assigned identities. The type 'None' will remove all identities from the service.", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned" + ], + "x-ms-enum": { + "name": "IdentityType", + "modelAsString": true, + "values": [ + { + "value": "None", + "name": "None", + "description": "Indicates that any identity associated with the search service needs to be removed." + }, + { + "value": "SystemAssigned", + "name": "SystemAssigned", + "description": "Indicates that system-assigned identity for the search service will be enabled." + }, + { + "value": "UserAssigned", + "name": "UserAssigned", + "description": "Indicates that one or more user assigned identities will be assigned to the search service." + }, + { + "value": "SystemAssigned, UserAssigned", + "name": "SystemAssigned, UserAssigned", + "description": "Indicates that system-assigned identity for the search service will be enabled along with the assignment of one or more user assigned identities." + } + ] + } + }, + "userAssignedIdentities": { + "$ref": "#/definitions/UserAssignedManagedIdentities", + "description": "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource IDs in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." + } + }, + "required": [ + "type" + ], + "description": "Details about the search service identity. A null value indicates that the search service has no identity assigned." + }, + "UserAssignedManagedIdentities": { + "type": "object", + "description": "The list of user identities associated with the search service. The user identity dictionary key references will be ARM resource IDs in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedManagedIdentity" + } + }, + "UserAssignedManagedIdentity": { + "properties": { + "principalId": { + "readOnly": true, + "type": "string", + "description": "The principal ID of user assigned identity." + }, + "clientId": { + "readOnly": true, + "type": "string", + "description": "The client ID of user assigned identity." + } + }, + "type": "object", + "description": "The details of the user assigned managed identity assigned to the search service." + }, + "QuotaUsagesListResult": { + "type": "object", + "properties": { + "value": { + "readOnly": true, + "type": "array", + "items": { + "$ref": "#/definitions/QuotaUsageResult" + }, + "description": "The quota usages for the SKUs supported by Azure AI Search." + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "Request URL that can be used to query next page of quota usages. Returned when the total number of requested quota usages exceed maximum page size." + } + }, + "description": "Response containing the quota usage information for all the supported SKUs of Azure AI Search.", + "x-ms-external": true + }, + "QuotaUsageResult": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The resource ID of the quota usage SKU endpoint for Microsoft.Search provider." + }, + "unit": { + "type": "string", + "description": "The unit of measurement for the search SKU." + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "The currently used up value for the particular search SKU." + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The quota limit for the particular search SKU." + }, + "name": { + "readOnly": true, + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The SKU name supported by Azure AI Search." + }, + "localizedValue": { + "type": "string", + "description": "The localized string value for the SKU name." + } + }, + "description": "The name of the SKU supported by Azure AI Search." + } + }, + "description": "Describes the quota usage for a particular SKU." + }, + "NetworkSecurityPerimeterConfiguration": { + "description": "Network security perimeter configuration for a server.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + } + }, + "NetworkSecurityPerimeterConfigurationListResult": { + "description": "A list of network security perimeter configurations for a server.", + "type": "object", + "properties": { + "value": { + "description": "Array of results.", + "type": "array", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + }, + "readOnly": true + }, + "nextLink": { + "description": "Link to retrieve next page of results.", + "type": "string", + "readOnly": true + } + } + }, + "NetworkSecurityPerimeterConfigurationProperties": { + "description": "The properties of a network security perimeter configuration.", + "type": "object", + "properties": { + "provisioningState": { + "type": "string", + "readOnly": true + }, + "networkSecurityPerimeter": { + "$ref": "#/definitions/NSPConfigPerimeter" + }, + "resourceAssociation": { + "$ref": "#/definitions/NSPConfigAssociation" + }, + "profile": { + "$ref": "#/definitions/NSPConfigProfile" + }, + "provisioningIssues": { + "type": "array", + "items": { + "$ref": "#/definitions/NSPProvisioningIssue" + }, + "x-ms-identifiers": [] + } + } + }, + "NSPConfigAccessRule": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "properties": { + "$ref": "#/definitions/NSPConfigAccessRuleProperties" + } + }, + "description": "An access rule for a network security perimeter configuration." + }, + "NSPConfigAccessRuleProperties": { + "type": "object", + "properties": { + "direction": { + "type": "string" + }, + "addressPrefixes": { + "type": "array", + "items": { + "type": "string" + } + }, + "fullyQualifiedDomainNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "subscriptions": { + "type": "array", + "items": { + "type": "string" + } + }, + "networkSecurityPerimeters": { + "type": "array", + "items": { + "$ref": "#/definitions/NSPConfigNetworkSecurityPerimeterRule" + } + } + }, + "description": "The properties for the access rules in a network security perimeter configuration." + }, + "NSPConfigAssociation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "accessMode": { + "type": "string" + } + }, + "description": "The resource association for the network security perimeter." + }, + "NSPConfigNetworkSecurityPerimeterRule": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "perimeterGuid": { + "type": "string" + }, + "location": { + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] + } + }, + "description": "The network security perimeter properties present in a configuration rule." + }, + "NSPConfigPerimeter": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "perimeterGuid": { + "type": "string" + }, + "location": { + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] + } + }, + "description": "The perimeter for a network security perimeter configuration." + }, + "NSPConfigProfile": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "accessRulesVersion": { + "type": "string" + }, + "accessRules": { + "type": "array", + "items": { + "$ref": "#/definitions/NSPConfigAccessRule" + }, + "x-ms-identifiers": [] + } + }, + "description": "The profile for a network security perimeter configuration." + }, + "NSPProvisioningIssue": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "properties": { + "$ref": "#/definitions/NSPProvisioningIssueProperties" + } + }, + "description": "An object to describe any issues with provisioning network security perimeters to a search service." + }, + "NSPProvisioningIssueProperties": { + "type": "object", + "properties": { + "issueType": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suggestedResourceIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "suggestedAccessRules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "The properties to describe any issues with provisioning network security perimeters to a search service." + }, + "OfferingsListResult": { + "type": "object", + "description": "The response containing a list of features and SKUs offered in various regions.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferingsByRegion" + }, + "description": "The list of regions with their respective features and SKUs offered." + }, + "nextLink": { + "type": "string", + "readOnly": true, + "description": "The URL to get the next set of offerings, if any." + } + } + }, + "OfferingsByRegion": { + "type": "object", + "properties": { + "regionName": { + "type": "string", + "description": "The name of the region." + }, + "features": { + "type": "array", + "items": { + "$ref": "#/definitions/FeatureOffering" + }, + "description": "The list of features offered in this region.", + "x-ms-identifiers": [] + }, + "skus": { + "type": "array", + "items": { + "$ref": "#/definitions/SkuOffering" + }, + "description": "The list of SKUs offered in this region." + } + } + }, + "FeatureOffering": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the feature offered in this region.", + "enum": [ + "Grok", + "ImageVectorization", + "DocumentIntelligence", + "QueryRewrite", + "S3", + "StorageOptimized", + "SemanticSearch", + "MegaStore", + "AvailabilityZones" + ], + "x-ms-enum": { + "name": "FeatureName", + "modelAsString": true, + "values": [ + { + "value": "Grok", + "name": "Grok", + "description": "Supports Grok feature." + }, + { + "value": "ImageVectorization", + "name": "ImageVectorization", + "description": "Supports Image Vectorization feature." + }, + { + "value": "DocumentIntelligence", + "name": "DocumentIntelligence", + "description": "Supports Document Intelligence feature." + }, + { + "value": "QueryRewrite", + "name": "QueryRewrite", + "description": "Supports Query Rewrite feature." + }, + { + "value": "S3", + "name": "S3", + "description": "Supports S3 feature." + }, + { + "value": "StorageOptimized", + "name": "StorageOptimized", + "description": "Supports Storage Optimized feature." + }, + { + "value": "SemanticSearch", + "name": "SemanticSearch", + "description": "Supports Semantic Search feature." + }, + { + "value": "MegaStore", + "name": "MegaStore", + "description": "Supports Mega Store feature." + }, + { + "value": "AvailabilityZones", + "name": "AvailabilityZones", + "description": "Supports Availability Zones feature." + } + ] + } + } + } + }, + "SkuOffering": { + "type": "object", + "properties": { + "sku": { + "$ref": "#/definitions/Sku" + }, + "limits": { + "type": "object", + "properties": { + "indexes": { + "type": "integer", + "format": "int32", + "description": "The maximum number of indexes available for this SKU." + }, + "indexers": { + "type": "integer", + "format": "int32", + "description": "The maximum number of indexers available for this SKU." + }, + "partitionStorageInGigabytes": { + "type": "integer", + "format": "int32", + "description": "The maximum storage size in Gigabytes available for this SKU per partition." + }, + "partitionVectorStorageInGigabytes": { + "type": "integer", + "format": "int32", + "description": "The maximum vector storage size in Gigabytes available for this SKU per partition." + }, + "searchUnits": { + "type": "integer", + "format": "int32", + "description": "The maximum number of search units available for this SKU." + }, + "replicas": { + "type": "integer", + "format": "int32", + "description": "The maximum number of replicas available for this SKU." + }, + "partitions": { + "type": "integer", + "format": "int32", + "description": "The maximum number of partitions available for this SKU." + } + }, + "description": "The limits associated with this SKU offered in this region." + } + } + } + }, + "parameters": { + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group within the current subscription. You can obtain this value from the Azure Resource Manager API or the portal.", + "x-ms-parameter-location": "method" + }, + "SearchServiceNameParameter": { + "name": "searchServiceName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^(?=.{2,60}$)[a-z0-9][a-z0-9]+(-[a-z0-9]+)*$", + "description": "The name of the Azure AI Search service associated with the specified resource group.", + "x-ms-parameter-location": "method" + }, + "PrivateEndpointConnectionNameParameter": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the private endpoint connection to the Azure AI Search service with the specified resource group.", + "x-ms-parameter-location": "method" + }, + "SharedPrivateLinkResourceNameParameter": { + "name": "sharedPrivateLinkResourceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the shared private link resource managed by the Azure AI Search service within the specified resource group.", + "x-ms-parameter-location": "method" + }, + "OperationNameParameter": { + "name": "operationName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of a shared private link resource operation.", + "x-ms-parameter-location": "method" + }, + "ClientRequestIdParameter": { + "name": "x-ms-client-request-id", + "x-ms-client-name": "clientRequestId", + "in": "header", + "required": false, + "type": "string", + "format": "uuid", + "description": "A client-generated GUID value that identifies this request. If specified, this will be included in response information as a way to track the request.", + "x-ms-client-request-id": true, + "x-ms-parameter-grouping": { + "name": "search-management-request-options" + }, + "x-ms-parameter-location": "method" + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "The unique identifier for a Microsoft Azure subscription. You can obtain this value from the Azure Resource Manager API or the portal." + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "The API version to use for each request." + }, + "LocationParameter": { + "name": "location", + "in": "path", + "required": true, + "type": "string", + "description": "The unique location name for a Microsoft Azure geographic region.", + "x-ms-parameter-location": "method" + }, + "SkuNameParameter": { + "name": "skuName", + "in": "path", + "required": true, + "type": "string", + "description": "The unique SKU name that identifies a billable tier.", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/search/resource-manager/readme.md b/specification/search/resource-manager/readme.md index 5501d813904c..7d171f999040 100644 --- a/specification/search/resource-manager/readme.md +++ b/specification/search/resource-manager/readme.md @@ -26,7 +26,16 @@ These are the global settings for the SearchManagementClient API. ```yaml openapi-type: arm -tag: package-preview-2024-06 +tag: package-preview-2025-02-01 +``` + +### Tag: package-preview-2025-02-01 + +These settings apply only when `--tag=package-preview-2025-02-01` is specified on the command line. + +```yaml $(tag) == 'package-preview-2025-02-01' +input-file: + - Microsoft.Search/preview/2025-02-01-preview/search.json ``` ### Tag: package-preview-2024-06 From 57396f185b86c7aaddac6f0ea401f2d68cef1f3a Mon Sep 17 00:00:00 2001 From: abdulgagit <156856565+abdulgagit@users.noreply.github.com> Date: Thu, 16 Jan 2025 13:14:44 -0800 Subject: [PATCH 45/82] Easy Button Private to Public API Migration (#30374) * Easy button related changes * Added new files for swagger changes related to EasyButton migration * Updated example data files * Addressed review comments * ARM Resource for Billing Account Migration * Updated example files * Removed source billing account name from response * Updated version number * Added locale information in request body for put call * Refactored to move definitions to types.json * Updated MigrationStatus and TransferProductStatus as enumAsString * Fixed build issues * Build fix * Added operations.json * Fixed build issue related to operation.json * Breaking change fix * Model validation issues fix * LintDiff Issues * Addressed review comments * Updated readme file to fix LintDiff * - code: OperationsApiSchemaUsesCommonTypes * Addressed review comment related to Products * Addressed review comment related migration status * Fixed Invalid_Type Error * Fixed swagger model validation issue * PrettierCheck fix * Added other status info for migration status --------- Co-authored-by: Abdulkhadar Gadampalli --- .../CreateOrUpdateMigrationMapping.json | 25 +++ .../examples/GetMigrationMapping.json | 21 +++ .../examples/InitiateMigration.json | 34 ++++ .../examples/operationsList.json | 21 +++ .../preview/2024-08-01-preview/migration.json | 146 +++++++++++++++++ .../preview/2024-08-01-preview/operation.json | 148 ++++++++++++++++++ .../preview/2024-08-01-preview/types.json | 147 +++++++++++++++++ .../billing/resource-manager/readme.md | 23 +++ 8 files changed, 565 insertions(+) create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/CreateOrUpdateMigrationMapping.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/GetMigrationMapping.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/InitiateMigration.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/operationsList.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/migration.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/operation.json create mode 100644 specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/types.json diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/CreateOrUpdateMigrationMapping.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/CreateOrUpdateMigrationMapping.json new file mode 100644 index 000000000000..1273ad896368 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/CreateOrUpdateMigrationMapping.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "billingAccountName": "57151837", + "api-version": "2024-08-01-preview", + "parameters": { + "destinationBillingScope": "/providers/Microsoft.Billing/billingAccounts/8a1d33b5-73a1-5e7f-4b29-5afaebaba7e4:03059466-caec-4aa5-b458-2071484f7d32_2019-05-31/billingProfiles/APS5-RFWH-BG7-PGB", + "status": "Draft" + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/migrations/default", + "name": "default", + "type": "Microsoft.Billing/billingAccounts/migrations/default", + "properties": { + "destinationBillingScope": "/providers/Microsoft.Billing/billingAccounts/8a1d33b5-73a1-5e7f-4b29-5afaebaba7e4:03059466-caec-4aa5-b458-2071484f7d32_2019-05-31/billingProfiles/APS5-RFWH-BG7-PGB", + "status": "Draft", + "transferId": null, + "products": [] + } + } + } + } +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/GetMigrationMapping.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/GetMigrationMapping.json new file mode 100644 index 000000000000..f59e632cdef5 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/GetMigrationMapping.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "billingAccountName": "57151837", + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/migrations/default", + "name": "default", + "type": "Microsoft.Billing/billingAccounts/migrations/default", + "properties": { + "destinationBillingScope": "/providers/Microsoft.Billing/billingAccounts/8a1d33b5-73a1-5e7f-4b29-5afaebaba7e4:03059466-caec-4aa5-b458-2071484f7d32_2019-05-31/billingProfiles/APS5-RFWH-BG7-PGB", + "status": "Completed", + "transferId": "4a74dc9e-a863-4c88-b11e-e76aa2f4a05d", + "products": [] + } + } + } + } +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/InitiateMigration.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/InitiateMigration.json new file mode 100644 index 000000000000..0bca192efaca --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/InitiateMigration.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "billingAccountName": "57151837", + "api-version": "2024-08-01-preview", + "parameters": { + "destinationBillingScope": "/providers/Microsoft.Billing/billingAccounts/8a1d33b5-73a1-5e7f-4b29-5afaebaba7e4:03059466-caec-4aa5-b458-2071484f7d32_2019-05-31/billingProfiles/APS5-RFWH-BG7-PGB", + "status": "InProgress", + "locale": "en-us" + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/migrations/default", + "name": "default", + "type": "Microsoft.Billing/billingAccounts/migrations/default", + "properties": { + "destinationBillingScope": "/providers/Microsoft.Billing/billingAccounts/8a1d33b5-73a1-5e7f-4b29-5afaebaba7e4:03059466-caec-4aa5-b458-2071484f7d32_2019-05-31/billingProfiles/APS5-RFWH-BG7-PGB", + "status": "Completed", + "transferId": "4a74dc9e-a863-4c88-b11e-e76aa2f4a05d", + "products": [ + { + "productType": "AzureSubscription", + "productId": "43566850-63bf-40d2-a2cb-763eb62d7f3b", + "name": "OpenAI Staging", + "skuDescription": "MS-AZR-0003P", + "status": "Completed" + } + ] + } + } + } + } +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/operationsList.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/operationsList.json new file mode 100644 index 000000000000..1bdf71ad3794 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/examples/operationsList.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "{namespace}/resource/read", + "display": { + "operation": "List resources", + "provider": "{namespace}", + "resource": "resource" + } + } + ] + } + } + } +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/migration.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/migration.json new file mode 100644 index 000000000000..608de13bbe5b --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/migration.json @@ -0,0 +1,146 @@ +{ + "swagger": "2.0", + "info": { + "title": "BillingManagementClient", + "description": "Documentation for Microsoft.Billing.", + "contact": { + "name": "Microsoft.Billing", + "url": "https://learn.microsoft.com/en-us/rest/api/billing/", + "email": "pacebpexphot@microsoft.com" + }, + "version": "2024-08-01-preview" + }, + "paths": { + "/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/migrations/default": { + "get": { + "tags": [ + "Migration" + ], + "description": "Gets migration mapping details.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/billing/" + }, + "operationId": "Migration_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "./types.json#/parameters/billingAccountName" + }, + { + "$ref": "./types.json#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Migration mapping details.", + "schema": { + "$ref": "#/definitions/MigrationDetails" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get migration mapping details": { + "$ref": "./examples/GetMigrationMapping.json" + } + } + }, + "put": { + "tags": [ + "Migration" + ], + "description": "Migrates from source to destination billing scope", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/billing/" + }, + "operationId": "Migration_Put", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "./types.json#/parameters/billingAccountName" + }, + { + "$ref": "./types.json#/parameters/apiVersionParameter" + }, + { + "in": "body", + "name": "parameters", + "description": "Migration details.", + "required": true, + "schema": { + "$ref": "./types.json#/definitions/Migration" + } + } + ], + "responses": { + "200": { + "description": "Migration details.", + "schema": { + "$ref": "#/definitions/MigrationDetails" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateOrUpdateMigrationMapping": { + "$ref": "./examples/CreateOrUpdateMigrationMapping.json" + }, + "Migration Initiation Details": { + "$ref": "./examples/InitiateMigration.json" + } + } + } + } + }, + "definitions": { + "MigrationDetails": { + "description": "Migration details.", + "type": "object", + "allOf": [ + { + "$ref": "./types.json#/definitions/ProxyResourceWithTags" + } + ], + "properties": { + "properties": { + "$ref": "./types.json#/definitions/Migration" + } + } + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow." + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ] +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/operation.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/operation.json new file mode 100644 index 000000000000..64a09f7b0983 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/operation.json @@ -0,0 +1,148 @@ +{ + "swagger": "2.0", + "info": { + "title": "BillingManagementClient", + "description": "Documentation for Microsoft.Billing.", + "contact": { + "name": "Microsoft.Billing", + "url": "https://learn.microsoft.com/en-us/rest/api/billing/", + "email": "pacebpexphot@microsoft.com" + }, + "version": "2024-08-01-preview" + }, + "paths": { + "/providers/Microsoft.Billing/operations": { + "get": { + "tags": [ + "ArmOperations" + ], + "description": "List of operations supported by provider.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/billing/" + }, + "operationId": "Operations_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "./types.json#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "OperationsList": { + "$ref": "./examples/operationsList.json" + } + } + } + } + }, + "definitions": { + "Operation": { + "description": "Details of a REST API operation, returned from the Resource Provider Operations API.", + "type": "object", + "properties": { + "name": { + "description": "The name of the operation, as per Resource-Based Access Control (RBAC). Examples: \"Microsoft.Compute/virtualMachines/write\", \"Microsoft.Compute/virtualMachines/capture/action\".", + "type": "string", + "readOnly": true + }, + "isDataAction": { + "description": "Whether the operation applies to data-plane. This is \"true\" for data-plane operations and \"false\" for ARM/control-plane operations.", + "type": "boolean", + "readOnly": true + }, + "display": { + "description": "Localized display information for this particular operation.", + "$ref": "#/definitions/OperationDisplay" + } + } + }, + "OperationDisplay": { + "description": "Localized display information for this particular operation.", + "type": "object", + "properties": { + "description": { + "description": "The short, localized friendly description of the operation; suitable for tool tips and detailed views.", + "type": "string", + "readOnly": true + }, + "operation": { + "description": "The concise, localized friendly name for the operation; suitable for dropdowns. E.g. \"Create or Update Virtual Machine\", \"Restart Virtual Machine\".", + "type": "string", + "readOnly": true + }, + "provider": { + "description": "The localized friendly form of the resource provider name, e.g. \"Microsoft Monitoring Insights\" or \"Microsoft Compute\".", + "type": "string", + "readOnly": true + }, + "resource": { + "description": "The localized friendly name of the resource type related to this operation. E.g. \"Virtual Machines\" or \"Job Schedule Collections\".", + "type": "string", + "readOnly": true + } + } + }, + "OperationListResult": { + "description": "A container for a list of resources", + "type": "object", + "properties": { + "nextLink": { + "description": "The link (url) to the next page of results.", + "type": "string", + "readOnly": true + }, + "value": { + "description": "The list of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + } + } + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow." + } + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ] +} diff --git a/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/types.json b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/types.json new file mode 100644 index 000000000000..116a95d38d01 --- /dev/null +++ b/specification/billing/resource-manager/Microsoft.Billing/preview/2024-08-01-preview/types.json @@ -0,0 +1,147 @@ +{ + "swagger": "2.0", + "info": { + "title": "BillingManagementClient", + "description": "Documentation for Microsoft.Billing.", + "contact": { + "name": "Microsoft.Billing", + "url": "https://learn.microsoft.com/en-us/rest/api/billing/", + "email": "pacebpexphot@microsoft.com" + }, + "version": "2024-08-01-preview" + }, + "paths": {}, + "definitions": { + "ProxyResourceWithTags": { + "description": "Common fields that are returned in the response for all Azure Resource Manager resources.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "tags": { + "description": "Dictionary of metadata associated with the resource. It may not be populated for all resource types. Maximum key/value length supported of 256 characters. Keys/value should not empty value nor null. Keys can not contain < > % & \\ ? /", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "x-ms-azure-resource": true + }, + "Products": { + "description": "Product Details.", + "type": "object", + "properties": { + "productType": { + "description": "product type", + "type": "string", + "readOnly": true + }, + "productId": { + "description": "product Id", + "type": "string", + "readOnly": true + }, + "name": { + "description": "product name", + "type": "string", + "readOnly": true + }, + "skuDescription": { + "description": "product sku description", + "type": "string", + "readOnly": true + }, + "status": { + "description": "product transfer status", + "enum": [ + "NotStarted", + "InProgress", + "Completed", + "Failed" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "TransferProductStatus", + "modelAsString": true + } + } + }, + "readOnly": true + }, + "Migration": { + "description": "Migration Details.", + "type": "object", + "properties": { + "destinationBillingScope": { + "description": "Destination billing scope to be mapped.", + "type": "string" + }, + "status": { + "description": "Migration Status", + "enum": [ + "Draft", + "InProgress", + "Completed", + "Failed", + "CompletedWithErrors" + ], + "type": "string", + "x-ms-enum": { + "name": "MigrationStatus", + "modelAsString": true + } + }, + "locale": { + "description": "Locale for notifications. Optional property, used only for migrate enrollment", + "type": "string" + }, + "transferId": { + "description": "Transfer Id", + "type": "string", + "readOnly": true + }, + "products": { + "type": "array", + "items": { + "$ref": "#/definitions/Products" + } + } + } + } + }, + "parameters": { + "billingAccountName": { + "in": "path", + "name": "billingAccountName", + "description": "The ID that uniquely identifies a billing account.", + "required": true, + "type": "string", + "pattern": "^([0-9]+|([Pp][Cc][Nn]\\.[A-Za-z0-9]+)|[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}(:[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}_[0-9]{4}(-[0-9]{2}){2})?)$", + "x-ms-parameter-location": "method" + }, + "apiVersionParameter": { + "in": "query", + "name": "api-version", + "description": "The version of the API to be used with the client request. The current version is 2024-04-01.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "description": "Azure Active Directory OAuth2 Flow." + } + } +} diff --git a/specification/billing/resource-manager/readme.md b/specification/billing/resource-manager/readme.md index 5ff95b7511c3..cd6b57a5b528 100644 --- a/specification/billing/resource-manager/readme.md +++ b/specification/billing/resource-manager/readme.md @@ -291,6 +291,29 @@ input-file: - Microsoft.Billing/preview/2020-09-01-preview/billingOperations.json ``` +### Tag: package-2024-08-preview + +These settings apply only when `--tag=package-2024-08-preview` is specified on the command line. + +```yaml $(tag) == 'package-2024-08-preview' +input-file: + - Microsoft.Billing/preview/2024-08-01-preview/migration.json + - Microsoft.Billing/preview/2024-08-01-preview/operation.json + - Microsoft.Billing/preview/2024-08-01-preview/types.json +suppressions: + - code: PutResponseCodes + from: migration.json + reason: 201 is returned as a part of response + - code: PutRequestResponseSchemeArm + from: migration.json + reason: PATCH operation is not needed + - code: OperationsApiSchemaUsesCommonTypes + from: operation.json + reason: Service design that generates API definition. Type defined in local types.json + - code: TenantLevelAPIsNotAllowed + reason: Specific validation rules do not apply to this service. Microsoft.Billing is a tenant level RP +``` + ### Tag: package-2020-11-preview These settings apply only when `--tag=package-2020-11-preview` is specified on the command line. From 0c18e1318df9c510389480c1ce54830728503ea8 Mon Sep 17 00:00:00 2001 From: grangasamy-msft Date: Thu, 16 Jan 2025 14:39:36 -0800 Subject: [PATCH 46/82] Added new property SegmentCount to SMSReceived Event (#31764) * Added new property SegmentCount to SMSReceived Event * Adding bug fixes * Space Bug fix * Correcting Typo mistake * Changing segmentCount to required parameter * replaced the json files back to the original content * Adding required parameter to AzureComm json file. * removing timestamp as required parameter * code fix * reverting json * trying to fix package.json * fixing the json file * fixes --------- Co-authored-by: jolov --- .../AzureCommunicationServices.tsp | 3 +++ .../examples/2018-01-01/sms_received.json | 3 ++- .../examples/2024-01-01/sms_received.json | 3 ++- .../stable/2018-01-01/AzureCommunicationServices.json | 10 +++++++++- .../examples/cloud-events-schema/sms_received.json | 3 ++- .../examples/event-grid-schema/sms_received.json | 3 ++- .../stable/2018-01-01/GeneratedSystemEvents.json | 8 ++++++++ .../stable/2024-01-01/GeneratedSystemEvents.json | 8 +++++++- 8 files changed, 35 insertions(+), 6 deletions(-) diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp index 6571a63458ba..649205b3410d 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp @@ -221,6 +221,9 @@ model AcsSmsReceivedEventData extends AcsSmsEventBaseProperties { /** The time at which the SMS was received */ @madeRequired(ServiceApiVersions.v2024_01_01) receivedTimestamp: utcDateTime; + + /** Number of segments in the message */ + segmentCount: int32; } //TODO: This might need some fixing diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2018-01-01/sms_received.json b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2018-01-01/sms_received.json index 0c5a91ed9140..de5c1b11ca3d 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2018-01-01/sms_received.json +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2018-01-01/sms_received.json @@ -9,7 +9,8 @@ "From": "15555555555", "To": "15555555555", "Message": "Great to connect with ACS events", - "ReceivedTimestamp": "2020-09-18T00:27:45.32Z" + "ReceivedTimestamp": "2020-09-18T00:27:45.32Z", + "SegmentCount": 1 }, "specversion": "1.0", "operationId": "SMSReceivedEventName", diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2024-01-01/sms_received.json b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2024-01-01/sms_received.json index 0c5a91ed9140..de5c1b11ca3d 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2024-01-01/sms_received.json +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/examples/2024-01-01/sms_received.json @@ -9,7 +9,8 @@ "From": "15555555555", "To": "15555555555", "Message": "Great to connect with ACS events", - "ReceivedTimestamp": "2020-09-18T00:27:45.32Z" + "ReceivedTimestamp": "2020-09-18T00:27:45.32Z", + "SegmentCount": 1 }, "specversion": "1.0", "operationId": "SMSReceivedEventName", diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json index 96a1e7fdcdb1..e4114d3ea68a 100644 --- a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json +++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json @@ -1357,8 +1357,16 @@ "description": "The time at which the SMS was received", "format": "date-time", "type": "string" + }, + "segmentCount": { + "description": "Number of segments in the message", + "format": "int32", + "type": "integer" } - } + }, + "required": [ + "segmentCount" + ] }, "AcsRecordingFileStatusUpdatedEventData": { "description": "Schema of the Data property of an EventGridEvent for a Microsoft.Communication.RecordingFileStatusUpdated event.", diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/cloud-events-schema/sms_received.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/cloud-events-schema/sms_received.json index c21b90c2e58b..129f5ddc2f2b 100644 --- a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/cloud-events-schema/sms_received.json +++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/cloud-events-schema/sms_received.json @@ -9,7 +9,8 @@ "From": "15555555555", "To": "15555555555", "Message": "Great to connect with ACS events", - "ReceivedTimestamp": "2020-09-18T00:27:45.32Z" + "ReceivedTimestamp": "2020-09-18T00:27:45.32Z", + "SegmentCount": 1 }, "specversion": "1.0" } diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/sms_received.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/sms_received.json index cd1924f74fa2..fa0d9b99774b 100644 --- a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/sms_received.json +++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/sms_received.json @@ -7,7 +7,8 @@ "From": "15555555555", "To": "15555555555", "Message": "Great to connect with ACS events", - "ReceivedTimestamp": "2020-09-18T00:27:45.32Z" + "ReceivedTimestamp": "2020-09-18T00:27:45.32Z", + "SegmentCount": 1 }, "eventType": "Microsoft.Communication.SMSReceived", "dataVersion": "1.0", diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json index 60a997e9bee1..52998160d08c 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json @@ -2429,8 +2429,16 @@ "type": "string", "format": "date-time", "description": "The time at which the SMS was received" + }, + "segmentCount": { + "type": "integer", + "format": "int32", + "description": "Number of segments in the message" } }, + "required": [ + "segmentCount" + ], "allOf": [ { "$ref": "#/definitions/AcsSmsEventBaseProperties" diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json index 7d18fde4a6ea..9b224b2490ff 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json @@ -2482,10 +2482,16 @@ "type": "string", "format": "date-time", "description": "The time at which the SMS was received" + }, + "segmentCount": { + "type": "integer", + "format": "int32", + "description": "Number of segments in the message" } }, "required": [ - "receivedTimestamp" + "receivedTimestamp", + "segmentCount" ], "allOf": [ { From c18f249c85d002b7b2ddcc36b648512b574e1f4a Mon Sep 17 00:00:00 2001 From: fanruisun <104024248+fanruisun@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:39:52 -0800 Subject: [PATCH 47/82] add recipientMailServerHostName to AcsEmailDeliveryReportStatusDetails of AcsEmailDeliveryReportReceivedEventData and InternetMessageId to AcsEmailDeliveryReportReceivedEventData (#31739) * add recipient Mail server * add recipientMailServer to example * add recipient mail server in tsp file * add internet message id property * add property in example file * add swagger * nit * resolve comments * run command to resolve issues * change from recipientMailServer to recipientMailServerHostName * change recipient and sender to required --------- Co-authored-by: Fanrui Sun Co-authored-by: Komivi Agbakpem --- .../AzureCommunicationServices.tsp | 12 +++++++++--- .../2018-01-01/AzureCommunicationServices.json | 8 ++++++++ .../email_delivery_report_received.json | 4 +++- .../stable/2018-01-01/GeneratedSystemEvents.json | 13 ++++++++++++- .../stable/2024-01-01/GeneratedSystemEvents.json | 13 ++++++++++++- 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp index 649205b3410d..cd4a89650566 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp @@ -258,12 +258,15 @@ model AcsRecordingFileStatusUpdatedEventData { /** Schema of the Data property of an EventGridEvent for a Microsoft.Communication.EmailDeliveryReportReceived event. */ model AcsEmailDeliveryReportReceivedEventData { /** The Sender Email Address */ - sender?: string; + sender: string; /** The recipient Email Address */ - recipient?: string; + recipient: string; + + /** The Internet Message Id of the email that has been sent */ + internetMessageId: string; - /** The Id of the email been sent */ + /** The Id of the email that has been sent */ messageId?: string; /** The status of the email. Any value other than Delivered is considered failed. */ @@ -899,6 +902,9 @@ union AcsEmailDeliveryReportStatus { model AcsEmailDeliveryReportStatusDetails { /** Detailed status message */ statusMessage?: string; + + /** Recipient mail server host name */ + recipientMailServerHostName?: string; } /** Schema of common properties of all chat thread events */ diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json index e4114d3ea68a..8ab0b79ac042 100644 --- a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json +++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/AzureCommunicationServices.json @@ -1442,6 +1442,10 @@ "description": "The recipient Email Address", "type": "string" }, + "internetMessageId": { + "description": "The Internet Message Id of the email been sent", + "type": "string" + }, "messageId": { "description": "The Id of the email been sent", "type": "string" @@ -2023,6 +2027,10 @@ "description": "Detailed information about the status if any", "type": "object", "properties": { + "recipientMailServerHostName": { + "description": "Recipient Mail Server Host Name", + "type": "string" + }, "statusMessage": { "description": "Detailed status message", "type": "string" diff --git a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/email_delivery_report_received.json b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/email_delivery_report_received.json index 47d4fc8b7d68..f6e625a3dd8a 100644 --- a/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/email_delivery_report_received.json +++ b/specification/eventgrid/data-plane/Microsoft.Communication/stable/2018-01-01/examples/event-grid-schema/email_delivery_report_received.json @@ -5,11 +5,13 @@ "data": { "sender": "test2@contoso.org", "recipient": "test1@contoso.com", + "internetMessageId": "", "messageId": "950850f5-bcdf-4315-b77a-6447cf56fac9", "status": "delivered", "deliveryAttemptTimestamp": "2023-02-09T19:46:12.2480265+00:00", "deliveryStatusDetails": { - "statusMessage": "DestinationMailboxFull" + "statusMessage": "DestinationMailboxFull", + "recipientMailServerHostName": "mx.contoso.com" } }, "eventType": "Microsoft.Communication.EmailDeliveryReportReceived", diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json index 52998160d08c..80d3cc641d94 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json @@ -682,9 +682,13 @@ "type": "string", "description": "The recipient Email Address" }, + "internetMessageId": { + "type": "string", + "description": "The Internet Message Id of the email that has been sent" + }, "messageId": { "type": "string", - "description": "The Id of the email been sent" + "description": "The Id of the email that has been sent" }, "status": { "$ref": "#/definitions/AcsEmailDeliveryReportStatus", @@ -701,6 +705,9 @@ } }, "required": [ + "sender", + "recipient", + "internetMessageId", "deliveryStatusDetails" ] }, @@ -759,6 +766,10 @@ "statusMessage": { "type": "string", "description": "Detailed status message" + }, + "recipientMailServerHostName": { + "type": "string", + "description": "Recipient mail server host name" } } }, diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json index 9b224b2490ff..6e5910e4a748 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json @@ -706,9 +706,13 @@ "type": "string", "description": "The recipient Email Address" }, + "internetMessageId": { + "type": "string", + "description": "The Internet Message Id of the email that has been sent" + }, "messageId": { "type": "string", - "description": "The Id of the email been sent" + "description": "The Id of the email that has been sent" }, "status": { "$ref": "#/definitions/AcsEmailDeliveryReportStatus", @@ -725,6 +729,9 @@ } }, "required": [ + "sender", + "recipient", + "internetMessageId", "status", "deliveryStatusDetails", "deliveryAttemptTimestamp" @@ -785,6 +792,10 @@ "statusMessage": { "type": "string", "description": "Detailed status message" + }, + "recipientMailServerHostName": { + "type": "string", + "description": "Recipient mail server host name" } } }, From 5a4b59aedfbaac5081958df88c89cd178b7a6053 Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Thu, 16 Jan 2025 16:06:59 -0800 Subject: [PATCH 48/82] Sync missing js file from eng/common --- .../templates/matthews/styles/main.js | 238 ++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 eng/common/docgeneration/templates/matthews/styles/main.js diff --git a/eng/common/docgeneration/templates/matthews/styles/main.js b/eng/common/docgeneration/templates/matthews/styles/main.js new file mode 100644 index 000000000000..7ab1dd9e28ff --- /dev/null +++ b/eng/common/docgeneration/templates/matthews/styles/main.js @@ -0,0 +1,238 @@ +// Use container fluid +var containers = $(".container"); +containers.removeClass("container"); +containers.addClass("container-fluid"); + +WINDOW_CONTENTS = window.location.href.split('/') +var SELECTED_LANGUAGE = '' +var PACKAGE_REGEX = '' +var PACKAGE_REPLACEMENT = '' + +ATTR1 = '[System.ComponentModel.EditorBrowsable]\n<' + +// Navbar Hamburger +$(function () { + $(".navbar-toggle").click(function () { + $(this).toggleClass("change"); + }) +}) + +// Select list to replace affix on small screens +$(function () { + var navItems = $(".sideaffix .level1 > li"); + + if (navItems.length == 0) { + return; + } + + var selector = $("