# Az.Kusto
This directory contains the PowerShell module for the Kusto service.
---
## Info
- Modifiable: yes
- Generated: all
- Committed: yes
- Packaged: yes
---
## Detail
This module was primarily generated via [AutoRest](https://github.com/Azure/autorest) using the [PowerShell](https://github.com/Azure/autorest.powershell) extension.
## Module Requirements
- [Az.Accounts module](https://www.powershellgallery.com/packages/Az.Accounts/), version 2.7.5 or greater
## Authentication
AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent.
## Development
For information on how to develop for `Az.Kusto`, see [how-to.md](how-to.md).
---
## Generation Requirements
Use of the beta version of `autorest.powershell` generator requires the following:
- [NodeJS LTS](https://nodejs.org) (10.15.x LTS preferred)
- **Note**: It *will not work* with Node < 10.x. Using 11.x builds may cause issues as they may introduce instability or breaking changes.
> If you want an easy way to install and update Node, [NVS - Node Version Switcher](../nodejs/installing-via-nvs.md) or [NVM - Node Version Manager](../nodejs/installing-via-nvm.md) is recommended.
- [AutoRest](https://aka.ms/autorest) v3 beta
`npm install -g autorest@autorest`
- PowerShell 6.0 or greater
- If you don't have it installed, you can use the cross-platform npm package
`npm install -g pwsh`
- .NET Core SDK 2.0 or greater
- If you don't have it installed, you can use the cross-platform npm package
`npm install -g dotnet-sdk-2.2`
## Run Generation
In this directory, run AutoRest:
> `autorest`
---
### AutoRest Configuration
> see https://aka.ms/autorest
### General settings
> Values
``` yaml
require:
- $(this-folder)/../../readme.azure.noprofile.md
# lock the commit
input-file:
- $(repo)/specification/azure-kusto/resource-manager/Microsoft.Kusto/stable/2024-04-13/kusto.json
commit: 9a38736f10946d4e41ea40b3ba43d85a738f3263
keep-pec-and-plr: true
```
> Names
``` yaml
module-version: 0.1.4
title: Kusto
subject-prefix: $(service-name)
```
> Folders
``` yaml
clear-output-folder: true
output-folder: .
```
> Directives
``` yaml
directive:
# Fix the error in swagger, RP actually returns 200 when deletion succeeds
- from: swagger-document
where: $..produces
transform: $ = $.filter( each => each === 'application/json');
reason: this spec adds produces application/xml and text/json erroneously.
# Fix the case mismatch between swagger and RP
- from: swagger-document
where: $
transform: return $.replace(/\/clusters\//g, "/Clusters/")
- from: swagger-document
where: $
transform: return $.replace(/\/databases\//g, "/Databases/")
- from: swagger-document
where: $
transform: return $.replace(/\/dataConnections\//g, "/DataConnections/")
- from: swagger-document
where: $
transform: return $.replace(/\/attachedDatabaseConfigurations\//g, "/AttachedDatabaseConfigurations/")
- from: swagger-document
where: $
transform: return $.replace(/\/principalAssignments\//g, "/PrincipalAssignments/")
# Remove the non-expanded parameter set
- where:
variant: ^(Add|Check|Detach)(?!.*?(Expanded|JsonFilePath|JsonString))
remove: true
- where:
variant: ^CreateViaIdentity$|^CreateViaIdentityExpanded$
remove: true
# Remove the unexpanded parameter set for specific commands
- where:
subject: ^AttachedDatabaseConfiguration$|^Cluster$|^ClusterPrincipalAssignment$|^DatabasePrincipalAssignment$
variant: ^(Create|Update)(?!.*?(Expanded|JsonFilePath|JsonString))
remove: true
- where:
verb: Remove
subject: DatabasePrincipal|ClusterLanguageExtension
variant: ^(Remove)(?!.*?(Expanded|JsonFilePath|JsonString))
remove: true
# Custom commands
- where:
subject: ^DataConnectionValidation$
hide: true
- where:
subject: ^Database$|^DataConnection$
variant: ^Create$|^CreateExpanded$|^Update$|^UpdateExpanded$|^UpdateViaIdentity$|^UpdateViaIdentityExpanded$
hide: true
# Autorest V4 generated variants, but need customise, can be added back upon service team request
- where:
subject: ^Database$|^DataConnection$
variant: ^CreateViaIdentityCluster$|^CreateViaIdentityClusterExpanded$|^CreateViaIdentityDatabase$|^CreateViaIdentityDatabaseExpanded$|^UpdateViaIdentityCluster$|^UpdateViaIdentityClusterExpanded$|^UpdateViaIdentityDatabase$|^UpdateViaIdentityDatabaseExpanded$
remove: true
# Hide the operation API
- where:
subject: Operation
hide: true
# Remove the set-* cmdlet
- where:
verb: Set
remove: true
# Rename cmdlet from Get-AzKustoOperationsResultsLocation to Get-AzKustoOperationsResultLocation so it's consistent with Get-AzKustoOperationsResult
- where:
verb: Get
subject: OperationsResultsLocation
set:
subject: OperationsResultLocation
# For Get-AzKustoOperationResult no particular need for -PassThru parameter
- where:
verb: Get
subject: OperationsResultLocation
parameter-name: ^PassThru$
hide: true
# Rename Move-AzKustoCluster -> Invoke-AzKustoClusterMigration
- where:
verb: Move
subject: Cluster
set:
verb: Invoke
subject: ClusterMigration
# Autorest V4 generated GET+PUT api Update cmdlets, can be added upon service team request
- where:
verb: Update
subject: DatabasePrincipalAssignment|ClusterPrincipalAssignment|AttachedDatabaseConfiguration|PrivateEndpointConnection
remove: true
# Correct some generated code
- from: source-file-csharp
where: $
transform: $ = $.replace('internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IDataConnection Property', 'public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IDataConnection Property');
# Breaking change preview messages for Az v16.0.0 migration to autorest v4
- where:
verb: Add
subject: ^ClusterCalloutPolicy$|^ClusterLanguageExtension$|^DatabasePrincipal$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: Get
subject: ^AttachedDatabaseConfiguration$|^Cluster$|^ClusterCalloutPolicy$|^ClusterFollowerDatabase$|^ClusterFollowerDatabaseGet$|^ClusterLanguageExtension$|^ClusterOutboundNetworkDependencyEndpoint$|^ClusterPrincipalAssignment$|^ClusterSku$|^Database$|^DatabasePrincipal$|^DatabasePrincipalAssignment$|^DataConnection$|^ManagedPrivateEndpoint$|^OperationsResult$|^PrivateEndpointConnection$|^PrivateLinkResource$|^SandboxCustomImage$|^Script$|^Sku$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: Invoke
subject: ^DetachClusterFollowerDatabase$|^InviteDatabaseFollower$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: New
subject: ^AttachedDatabaseConfiguration$|^Cluster$|^ClusterPrincipalAssignment$|^DatabasePrincipalAssignment$|^ManagedPrivateEndpoint$|^PrivateEndpointConnection$|^SandboxCustomImage$|^Script$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: Remove
subject: ^ClusterLanguageExtension$|^DatabasePrincipal$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: Test
subject: ^AttachedDatabaseConfigurationNameAvailability$|^ClusterNameAvailability$|^ClusterPrincipalAssignmentNameAvailability$|^DatabaseNameAvailability$|^DatabasePrincipalAssignmentNameAvailability$|^DataConnectionNameAvailability$|^ManagedPrivateEndpointNameAvailability$|^SandboxCustomImageNameAvailability$|^ScriptNameAvailability$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
- where:
verb: Update
subject: ^Cluster$|^ManagedPrivateEndpoint$|^SandboxCustomImage$|^Script$
set:
preview-announcement:
preview-message: "*****************************************************************************************\\r\\n* This cmdlet will undergo a breaking change in Az v16.0.0, to be released on May 2026. *\\r\\n* At least one change applies to this cmdlet. *\\r\\n* See all possible breaking changes at https://go.microsoft.com/fwlink/?linkid=2333486 *\\r\\n**************************************************************************************************"
```